alexan300 0 3 апреля, 2020 Опубликовано 3 апреля, 2020 · Жалоба Ищу начинающего специалиста, для создания библиотеки на паитон 3,7. Объем входящих данных порядка до 1 гб. Сами данные берутся с диска. Задача библиотеки преобразовать данные из 16 -ричного формата в десятичный. На выходе я должен получить в зависимости от заданного метода, либо последовательность str, последовательность int , либо массив str, массив int, либо последовательность массивов, либо все преобразованное сохранить в папке. Описание формата входящих данных прикладываю. там же пример преобразования, 16 - 10. https://yadi.sk/d/nvDcJdHiEN2muA 15 мБ 3.500 руб. срок два дня описалово.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 3 апреля, 2020 Опубликовано 3 апреля, 2020 · Жалоба А если на С? Делов-то немного, можно и за полдня управиться... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 3 апреля, 2020 Опубликовано 3 апреля, 2020 · Жалоба не..си не надо. Я в нем меньше понимаю, точнее 0..) Мне потом эту библиотеку надо с паитоном использовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 6 апреля, 2020 Опубликовано 6 апреля, 2020 · Жалоба class EcgReader: def __init__(self, settings_name: str, data_name: str): with open(settings_name, 'rb') as f: d = f.read() params = d[50:53] self.channels = params[0] self.accel_present = (params[1] != 0) self.block_size = params[2] self.data_file = open(data_name, 'rb') self.idx = 0 def read(self): res = [] for _ in range(self.channels): d = self.data_file.read(3) if len(d) != 3: return None # eof # данные согласно файлу "описалово" # num = (d[0] * 0x10000) + (d[1] * 0x100) + d[2] # данные согласно примеру num = (d[2] * 0x10000) + (d[1] * 0x100) + d[0] if num >= 0x800000: num -= 0x1000000 res.append(num) # skip accelerometer data self.idx += 1 if self.idx == self.block_size: if self.accel_present: self.data_file.read(4) self.idx = 0 return res # some tests if __name__ == '__main__': reader = EcgReader('000_ecg.crd', '000_ecg.bin') print('settings:', reader.channels, reader.accel_present, reader.block_size) for _ in range(10): # while True: d = reader.read() if d is None: break print(d) Деньги перечислите, пожалуйста, куда-нибудь в благотворительный фонд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться