Перейти к содержанию

Помогите с преобразованием формата данных!


Рекомендуемые сообщения

Опубликовано

Проблема такая.

Есть очень старая прога.

 

В новую программу нужно перенести архивы за несколько лет.

Как разобраться со структурой базы данных?

 

Есть только вспомогательные утилитки для вывода в текстовой файл.

 

Но таким путём возиться очень долго.

 

Нужен модуль, чтобы эти данные считать с исходного формата и перебросить в dbf-файл.

 

Для начала разобраться, как в Паскаль или С задать структуру этих файлов данных.

 

Например:

Type

InKar1 = Record

KNM : LongInt;

TN : Word;

Gru,Vid : Byte;

end;

data.rar

Опубликовано

Cru, покажи исх программы. Пытаться учить Paskal'ю без них тут думаю без благодарности никто не будет.

Архив содержит лишь те самые утилиты и некие структурированные бинарные файлы.

Опубликовано (изменено)
Cru, покажи исх программы. Пытаться учить Paskal'ю без них тут думаю без благодарности никто не будет.

Архив содержит лишь те самые утилиты и некие структурированные бинарные файлы.

 

Паскаль я уже выучил за эти дни. Я раньше на С делал простые программы. Навыки остались.

Исходников, к сожалению, нет.

 

Есть только программы в exe.

 

Там ещё один важный ньюанс!

 

Программа работает только в DOS-режиме Windows 98.

Данные перекидывают дискетами-флоппиками.

Написана на Ассемблере и С.

Представляете какая морока!

 

В Windows XP даёт ошибку "Переполнение деления".

 

Поэтому я хочу сделать быстро прогу на Foxpro.

 

Как узнаю и проверю структуру данных, задача измениться:

Нужно будет считывание этих данных через функции Foxpro.

 

P.S. в архиве есть батник. Он создает текстовые файлы. Структура, кажется, идёт один в один по выходным данным.

Изменено пользователем Cru
Опубликовано (изменено)
Архив содержит лишь те самые утилиты и некие структурированные бинарные файлы.

 

Вот кое-что нашёл в Google: http://forum.foxclub.ru/read.php?29,354776

 

В ФК никто не сможет помочь разобраться со структурой данных из моего архива?

 

Файлов очень много. Это только за один месяц (12-ый).

Можно конечно через утилиты в архиве сбрасывать в текстовой файл, разделители в указанных позициях жестко заменисть, потом конвертировать с них.

 

Но там более 300 файлов.

Изменено пользователем Cru
Опубликовано

Что-то мне смахивает на курсовую. Сами пробовали учиться? :D

Опубликовано (изменено)

staff

 

Я на полном серьезе. Без шуток.

Ты посмотри данные с текста. Запусти батник в архиве.

Там информация о приёме груза по квитанциям и оплате по ним.

Потом прога их сверяет, что закрылось, а что нет.

 

Вам мне программу писать не нужно, я сам уже немного умею программировать.

Только бы разобраться со структурой данных.

 

Надоел уже DOS-режим Windows 98.

 

Со структурой пытался разобраться. Там readme.txt есть в архиве.

 

1 Байт - начало структуры. Через 13 (для pr12) и 21 (для sp12) байтов повторяется.

2-ой байт это месяц = числу 12

Изменено пользователем Cru
Опубликовано (изменено)

В воскресенье попытался сам разобраться.

 

file "pr12"

 

char mesyac 1 byte

char valuta 1 byte

long filial 4 byte

float summa 4 byte

int doc_nomer 2 byte

char day 1 byte

--------------------

Total 13 byte

 

Хотел проверить на одной записи программой на Borland C 2.0

Записал структуру с заполненными данными одной записью 13байт в бинарный файл.

 

Вышла следующая проблема:

При записи переменной doc_nomer равной 1, в файле 7-ой байт=chr(1), 8-ой байт=chr(0)

 

А в нужном файле pr12 наоборот, значение 1 в 8-м байте.

 

Дальше разбираться с 4-х байтовыми Long и Float не стал, так как не понял ситуацию с Integer.

 

 

Дизассемблером сделал листинги, может кто разберется.

0.rar

Изменено пользователем Cru
Опубликовано (изменено)

Никто не сталкивался с записью бинарных данных в файл?

 

Integer, Float.

Изменено пользователем Elliot
Опубликовано

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

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...