Найти - Пользователи
Полная версия: Чтение и запись в файл в другом формате
Начало » Python для новичков » Чтение и запись в файл в другом формате
1 2 3 4 5
alexan1234
Так. вроде меня не поняли)
что значит “мои формат”, в Вашем понимании?
и что я “придумываю”??
еще раз, для не очень внимательных..
у меня есть прибор. моя разработка (за мои деньги).
есть программа к нему, которая перестала устраивать.
у сторонего разработчика ПО, есть вполне хорошая программа, лицензии на которые он и продает.
так вот. мои прибор, не совместим форматами с его программой.
Впрочем, мы отходим от темы..
И я прошу Вас не предлагать всякой ерунды,типа использовать формат записи по названным выше ссылкам.. какое отношение это имеет ко мне?
Что я хочу от Вас.? Да Бог знает, весь мои опыт задавания вопросов, на форумах, обычно заканчивается менторским тоном неких личностей “гуру”. С высот своего положения, объясняющих мне, как мне жить и что мне делать. Проще надо быть)) прооще) этож для новичков форум? Именно тут можно задать глупый вопрос?.
В итоге мне нужна программа - условное название “совместитель форматов”. Исходные файлы создаются моим прибором, ecg.bin b ecg.crd. Программа в виде библиотеки, или exe, перекодирует эти два файла в файл ..doc. Все описание что есть про исходные файлы, я приложил ранее, также я приложил описание и выходного файла. А образец выходного файла перешлю позже.
Если есть кто в Питере, желающий создать программку.. то вэлкам буду рад сотруднечеству.
alexan1234
py.user.next
н хочет, чтобы мы расшифровали то, что ему нужно получить от программы
аргумент такой: я не знаю, что мне нужно получить, потому что я не программист

Вообщем то да. Будь я программист, то задавал бы наверно более правильные вопросы.. ну или б мне их задавали.
Если “абракадабра” вам не понятна.. у меня нет более точного описания.
Ладно..Люди -Программеры.. Не знаете, забеите)

alexan1234
Что значит запись в struct
типа “>i4sh” ??
> от старшего к младшему чтение/запись
i это integer
s, sh string, char??
не могу найти негде расшифровку этого на русском.
py.user.next
alexan1234
Вообщем то да. Будь я программист, то задавал бы наверно более правильные вопросы.. ну или б мне их задавали.

вот смотри, у меня есть одно дело к тебе
посмотри на эти данные
00000000  9c 1b fd 33 c6 02 86 e4  ff 8d 11 fd a5 cf 02 46  |...3...........F|
00000010 e5 ff f7 15 fd bc cb 02 ae e5 ff e6 1f fd 48 c2 |..............H.|
00000020 02 4a e5 ff fa 2b fd 2a b7 02 e5 e4 ff e7 3c fd |.J...+.*......<.|
00000030 33 a7 02 58 e4 ff a8 46 fd 1c 9d 02 c5 e2 ff 78 |3..X...F.......x|
00000040 42 fd 21 a0 02 cf e1 ff 57 38 fd 43 a9 02 b3 e1 |B.!.....W8.C....|
00000050 ff 20 2e fd 44 b2 02 b7 e1 ff b4 1e fd 44 c0 02 |. ..D........D..|
00000060 ce e1 ff 57 15 fd 42 c9 02 cd e2 ff 91 1a fd 2a |...W..B........*|
00000070 c5 02 cf e3 ff bc 24 fd 56 bc 02 58 e4 ff f4 30 |......$.V..X...0|
00000080 fd 60 b1 02 41 e4 ff 7f 42 fd 33 a1 02 0d e4 ff |.`..A...B.3.....|
00000090 9f 4c fd 1b 97 02 2a e3 ff 4c 48 fd 5e 9a 02 1d |.L....*..LH.^...|

вот мне нужно из них кое-что получить
эти данные я не могу подробно описать тебе, ну ты попробуй сам понять, а то у меня не получается

поможешь? или тебе жалко? а? ну, ты и жлоб

так вот, чтобы облегчить тебе задачу (я понимаю, что тебе сложно будет это понять самому), я тебе подскажу - это результаты кардиограммы
и мало того, это результаты кардиограммы из файла, который ты же и посылал

alexan1234
у меня есть прибор. моя разработка (за мои деньги).
это твой прибор создал её, а ты помочь не хочешь! вот такой ты негодяй

всё, что ты прислал нормального, - это файл ecg.bin
всё остальное непригодно: либо это мусор, либо это не от этого файла


alexan1234
А образец выходного файла перешлю позже.
вот здесь я тебе говорил прислать образец входного и выходного файла
а ты говоришь “перешлю позже”
doza_and
py.user.next
“перешлю позже”
:) это уже похоже на ответ бота.
alexan1234
py.user.next
вот здесь я тебе говорил прислать образец входного и выходного файла
а ты говоришь “перешлю позже”
Нету у меня пока что “выходного” файла. Я же объясняю, что “выходной” файл, это то, что обрабатывается сторонним ПО. я не имею никакого отношения к нему. Жду когда мне пришлют образец.

py.user.next
так вот, чтобы облегчить тебе задачу (я понимаю, что тебе сложно будет это понять самому), я тебе подскажу - это результаты кардиограммы
и мало того, это результаты кардиограммы из файла, который ты же и посылал

Это я узнаю, ведь именно эти данные я в Фар и наблюдал.
Еще раз приложу описание формата, вернее то, что есть..
"Чтобы считать значение на канале нужно взять 24 бита принадлежащие этому каналу и привести их к целому числу по следующему алгоритму

byte int_image = new byte;
for (int i = 0; i < hwinfo.Channels; i++)
{
int_image = read;
int_image = read;
int_image = read;
if ((int_image & 0x80) != 0)
int_image = 0xFF;
else
int_image = 0;
}"
Я так понял их: первый канал, это биты с 3 и кажый 3.
второй канал, это биты с 4го и каждый 3й
третии канал, с 5 и каждый 3й.
Затем из этих значениях, формулами, формируются отведения.
Еще, наблюдение. Каждый 9 бит равен FF. случайность ли?
Для того чтобы полученные значения перевести в милливольты, необходимо разделить на некии коэффициент. Но получать абсолютные значения мне пока не важно, хотя бы хотелось увидать, действительно визуализация полученных чисел, приведет к получению графика, меандра.
alexan1234
Странно.. не целиком код влазит((

после Read (3*i)
(3*i+1)
(3*i+2)
в квадратных скобках.

Почему как надо не отображается??
alexan1234
Вот еще.. Во вложении файл, эксель. В нем те же самые данные, что и в /bin файле, но переведены в десятичный вид и с запятой. Получены он программой версии 1. Там есть такая функция Конвертация в эксель.
py.user.next
вот начало ecg.bin
00000000  9c 1b fd 33 c6 02 86 e4  ff 8d 11 fd a5 cf 02 46  |...3...........F|
00000010 e5 ff f7 15 fd bc cb 02 ae e5 ff e6 1f fd 48 c2 |..............H.|
00000020 02 4a e5 ff fa 2b fd 2a b7 02 e5 e4 ff e7 3c fd |.J...+.*......<.|
00000030 33 a7 02 58 e4 ff a8 46 fd 1c 9d 02 c5 e2 ff 78 |3..X...F.......x|
00000040 42 fd 21 a0 02 cf e1 ff 57 38 fd 43 a9 02 b3 e1 |B.!.....W8.C....|
00000050 ff 20 2e fd 44 b2 02 b7 e1 ff b4 1e fd 44 c0 02 |. ..D........D..|
00000060 ce e1 ff 57 15 fd 42 c9 02 cd e2 ff 91 1a fd 2a |...W..B........*|
00000070 c5 02 cf e3 ff bc 24 fd 56 bc 02 58 e4 ff f4 30 |......$.V..X...0|
00000080 fd 60 b1 02 41 e4 ff 7f 42 fd 33 a1 02 0d e4 ff |.`..A...B.3.....|
00000090 9f 4c fd 1b 97 02 2a e3 ff 4c 48 fd 5e 9a 02 1d |.L....*..LH.^...|

вот заголовок из csv
I;II;III;aVF;aVL;aVR;C1;

вот первая строка из csv
-8.88271;-8.81748;0.06523;-4.47397;-4.37613;8.85010;2.99757;

как получить число -8.88271 из ecg.bin ?
alexan1234
py.user.next
как получить число -8.88271 из ecg.bin ?
Спасибо за вопрос)) как раз думаю и эксперементирую на эту тему.
Видно сразу, что прямое преобразование ничего не даст.
Что я сейчас делаю:

import struct
#import csv
myfile = open(“ecg.bin”, “rb”)
data = myfile.read(240)
#print (data)
values = struct.unpack('240B', data) #извлекаем данные
print (values)
file=open(r'ecg1.txt','w')


S=values
print (S)# каждое третье пишем в фаил
file.writelines (str(S))
file.close()

Вот этим кодом, я перевожу биты в целые числа, вряд ли это правильно. Создаю файл тхт, в который записываю каждое третье значение. Затем по этим значениям отстрою график и если увижу на нем прямоугольник (пусть и из целочисленных), то ура-ура!! если же нет, буду “играться” с размером байт (240В) (или b). Ну и также буду эксперементировать с размерностью шага среза. Возможно, удача мне и улыбнется))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB