Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение модулей TPU Pascal 6 в проект Delphi, через DLL? А как напрямую?  
:(
    Опции темы
Piter
Дата 29.11.2016, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.8.2008

Репутация: нет
Всего: нет



Начну с конца. Разрядность шины в данном случае не причем. Выражаясь проще, используются 32-разрядные инструкции процессора. В 32 разрядной операционной системе адресация данных и переходов – все формируются иначе, чем в 16-разрядной версии. Ясно, что это объяснение чересчур простое. Стоит посмотреть в материалы по ассемблеру, где проводят сравнение или упоминание различий 16-ти и 32-х разрядных инструкций процессора.
Повторюсь, слегка иначе сказав, как TPU так и DCU версия от версии сред разработки меняли внутренние форматы. По той причине, что – это, скажем, файлы для «внутреннего» употребления в совместимости не было необходимости. По этой же причине, с довольно высокой вероятностью, найти дизассемблер для TPU невозможно. Были ли в те времена «умельцы», осуществившие подобный проект? Честно, сомневаюсь. Дизассемблировать, если есть исполняемый файл старого проекта, ничто не мешает. Однако, что это может дать без освоения ассемблера, как минимум? А что предстоит сделать после получения дизассемблированного текста? Достаточно вспомнить, что придется заново переписать, на ассемблере, инструкции ввода/вывода. Это так же относится к системным обращениям (обращение к процедурам операционной системы). А уж найти в немалом файле необходимые процедуры. Есть ли сейчас хакеры, которые вот так возьмутся за подобное? На этот вопрос не отвечу. Ясно, если кто-то сделал, то другой может разобраться. Но стоят ли подобные усилия затраченного времени? Разве что из «академического» интереса.
Снова, повторюсь, не занимался работами баз данных. Запрос «Borland Turbo Access 4.0» в «лоб» сети ничего определенного не дал. Скорее самым продуктивным был бы поиск, именно, структуры баз данных «Borland Turbo Access 4.0». Я имею в виду внутренне строение файла (файлов) баз данных. Возможно, где-то на сайтах разработчиков есть ссылки на совместимости версий. К тому не знаю в каком виде представлялись модули в «Borland Turbo Access 4.0», если его удастся найти. В идеале в виде pas-файлов, но подобное не было, в общем случае, принято в 90-х. А тогда путь к цели будет долгим. Набрал в GOOGLE «Borland Turbo Access 4.0 download free». Сразу возник вопрос, в каком виде этот Borland Turbo Access 4.0 распространялся. Может быть, он был частью базовых или расширенных версий от Borland? Посмотрел в BP7 этот «зверь» не входил. Прошелся (GOOGLEся) прямых упоминаний не увидел.
В завершении, не зная, что из себя представляет файл базы данных, зашел на один из сайтов по паскалю в раздел баз данных (http://pascal.sources.ru/database/), разумеется, прямого упоминания «Borland Turbo Access 4.0» там нет. В основном работа с DBF-файлами, просмотрщики и тому подобное. Однако, имеется собственный форум. Удачи.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 29.11.2016, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Понял, спасибо.
Файл БД - просто текстовый формат, последовательно "уложенные" на диск  данные типа Record. Никакого DBF нет. Вся проблема у меня - я не точно знаю последовательность и размерность полей Record. Знаю общую длину Record. В начале файла БД есть "приставка" в 6 байтов со служебными данными(число этих самых Record, число каких-то "преобразований" с БД и, кажется, признак целостности/повреждения БД). Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке".
Ну и попутно: разрядность шины данных/адреса как раз и определяет разрядность инструкций процессора. С точки зрения представления данных 32 разрядная должна спокойно читать 16. Но, сдается, там специально ставится "ограничитель" на такое общение.... А вот почему - тайна сия велика есть....

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 29.11.2016, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Понял, спасибо.
Файл БД - просто текстовый формат, последовательно "уложенные" на диск  данные типа Record. Никакого DBF нет. Вся проблема у меня - я не точно знаю последовательность и размерность полей Record. Знаю общую длину Record. В начале файла БД есть "приставка" в 6 байтов со служебными данными(число этих самых Record, число каких-то "преобразований" с БД и, кажется, признак целостности/повреждения БД). Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке".
Ну и попутно: разрядность шины данных/адреса как раз и определяет разрядность инструкций процессора. С точки зрения представления данных 32 разрядная должна спокойно читать 16. Но, сдается, там специально ставится "ограничитель" на такое общение.... А вот почему - тайна сия велика есть....

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 29.11.2016, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Понял, спасибо.
Файл БД - просто текстовый формат, последовательно "уложенные" на диск  данные типа Record. Никакого DBF нет. Вся проблема у меня - я не точно знаю последовательность и размерность полей Record. Знаю общую длину Record. В начале файла БД есть "приставка" в 6 байтов со служебными данными(число этих самых Record, число каких-то "преобразований" с БД и, кажется, признак целостности/повреждения БД). Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке".
Ну и попутно: разрядность шины данных/адреса как раз и определяет разрядность инструкций процессора. С точки зрения представления данных 32 разрядная должна спокойно читать 16. Но, сдается, там специально ставится "ограничитель" на такое общение.... А вот почему - тайна сия велика есть....

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 29.11.2016, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Понял, спасибо.
Файл БД - просто текстовый формат, последовательно "уложенные" на диск  данные типа Record. Никакого DBF нет. Вся проблема у меня - я не точно знаю последовательность и размерность полей Record. Знаю общую длину Record. В начале файла БД есть "приставка" в 6 байтов со служебными данными(число этих самых Record, число каких-то "преобразований" с БД и, кажется, признак целостности/повреждения БД). Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке".
Ну и попутно: разрядность шины данных/адреса как раз и определяет разрядность инструкций процессора. С точки зрения представления данных 32 разрядная должна спокойно читать 16. Но, сдается, там специально ставится "ограничитель" на такое общение.... А вот почему - тайна сия велика есть....

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 29.11.2016, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Понял, спасибо.
Файл БД - просто текстовый формат, последовательно "уложенные" на диск  данные типа Record. Никакого DBF нет. Вся проблема у меня - я не точно знаю последовательность и размерность полей Record. Знаю общую длину Record. В начале файла БД есть "приставка" в 6 байтов со служебными данными(число этих самых Record, число каких-то "преобразований" с БД и, кажется, признак целостности/повреждения БД). Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке".
Ну и попутно: разрядность шины данных/адреса как раз и определяет разрядность инструкций процессора. С точки зрения представления данных 32 разрядная должна спокойно читать 16. Но, сдается, там специально ставится "ограничитель" на такое общение.... А вот почему - тайна сия велика есть....

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Piter
Дата 30.11.2016, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.8.2008

Репутация: нет
Всего: нет



Начнем с конца и немного подробней.
Сразу, вспомнив, что речь идет о программировании, а не об аппаратных вопросах, повторюсь, речь не идет о разрядности шины. Пусть у нас с Вами работает 64-разрядный процессор, соответственно, установленный в поддерживающую его материнскую плату. При этом установлена 32-х разрядная версия Windows XP, не 64-х разрядная версия Windows XP, не 32-ти или 64-х разрядный Windows 7 и так далее. При этом процессор поддерживает и 64-х разрядные инструкции. Мы все равно имеем дало с 32-х разрядная инструкциями. Еще раз повторю, не о разрядности данных идет речь. Я, как и раньше, могу загрузить в регистр, например, AL (откинем некоторые нюансы, связанные с «выравниванием», так просто не объяснить, при всем желании) байт данных
mov AL,55h.
Для полного понимания, как всегда, следует обратиться к литературе. Отвлекусь, ранее я только наблюдал за перепиской на этом форуме и на нескольких других. Наблюдения так же приносили немало пользы. Свои проблемы, так получилось, привык решать сам. Пусть не всегда быстро, но верно. Помню, что «человек умеет только то, чему научился сам». Правда учиться нас не учили и не учат. И всему, опять-таки, приходится учиться самому. Итак, о разрядности (записываю это, так же «оживляю» казалось давние воспоминания – языки высокого уровня «притупляют» это. Стоит присмотреться к тексту и можно увидеть нечто «аппаратно зависимые типы». Так тип integer оказывается, насколько помню, аппаратно зависимым. В Delphi 1 это было 16-ти разрядное число, а Delphi 2 и далее до появления 64 разрядных компиляторов - 32-ти разрядное число). Итак для 16-ти разрядных инструкций:
source db 256 dup (?) ;некая строка данных

mov DS, offset source

Все работает нормально. Попытка скомпилировать это в том же Delphi 2÷7 оканчивается сообщением об ошибке. Сейчас не пытался повторить это чтобы, записать сообщение компилятора. Давно на этапе использования Delphi 2 применяя встроенный ассемблер долго «ловился» на этом перенося ассемблеровские процедуры Delphi 1 в следующую версию – всегда машинально забывал, что работаю не в версии 1, а в 2 и работаю не в Windows 3.11, а Windows 95. Но стоит немного, с точки зрения текста, изменить:

mov EDS, offset source

и все нормально. Но это, же относится и к системным обращения (обращениям к системным процедурам), которые содержаться в системных DLL. Стоит только раз увидеть простой фрагмент текста дизассемблера

0044338F E88B2Dffff call 0043612C

это обращение к подпрограмме по 32-х разрядному адресу. И тут я ловлю себя на том, что пытаюсь чрезвычайно кратко написать о том, что описывают не тонкие книги. Это, по сути, не верно. Знаю, примеры, по сути, ограничены. Можно пропустить или не понять нюансы. Но когда суть неизвестна, следует к ней обратиться. Будем профессионалами, будем учиться. Всегда учиться. Итак:
литературы по ассемблеру много. У меня на полке стоят несколько книг, многие есть в НЕТЕ.
Более близкая мене и моей «работы»
Рудаков П.И., К.Г. Финогенов Язык ассемблера: уроки программирования
есть
Пирогов В. Ассемблер для Windows
Голубь Н.Г. Искусство программирования на ассемблере
неслабо оценивается
Пирогов В. Ассемблер и дизассемблер.
Это, разумеется, не полный список, но что есть, то есть. Но вернемся к сути.
Стоит найти в НЕТЕ тему, связанную с сохранение и загрузкой данных типа record, сразу становится понятно. Вы что-то упустили в описании процедур сохранения и чтения данных из файла. Фраза «я не точно знаю последовательность и размерность полей Record» означает исключительно, извините, только незнание. Просто попытайтесь найти, например, «запись и чтение записей в файл Delphi»
Например
http://www.delphisources.ru/pages/faq/base...ds_to_file.html
хоть немного объяснений.
http://www.cyberforum.ru/delphi-beginners/thread80418.html
примеры, которые можно принять за основу для работы.
Я ограничился только этими ссылками.
Странным кажется, что зная структуру и, к тому же длину данных, возникает проблема считать данные из файла. В чем при таком состоянии задачи состоит проблема? Стоит провести простой эксперимент. Создайте простенькое приложение с данными представленными в виде записи. Запись может содержать любые данные. Пусть это будут, например, данные типов byte, word и string.
Сохраните эту запись в файл. А затем с учетом типов считайте (функция SizeOf вернет размер записи) из этого файла. Сейчас немного понимаю фразу о «пустых», не уверен в формулировке, полей в базе данных. Понимаю, хоть и не работал никогда с базами данных, что если мы храним в базе данные формата, например, byte, то в нем хранится значение, например нулевое, но ни как «пустое». И что значит пустое - при работе независимо от содержания (смысл на совести программиста) в памяти выделяется только один байт для этих данных. При этом нулевое значение данных типа word занимается в файле два байта (в каком порядке, первым пишется старший или младший байт, проводится запись, роли не играет). И при считывании этих данных независимо от их содержания, будут считаны для байта. Теперь ответ на простой вопрос «я не точно знаю последовательность и размерность полей Record». Последовательность – так в какой объявлена запись. Например (из моего собственного проекта управления экспериментальной установкой спекло-интерферометрии):
  TTaskList = record
     WorkStatus : byte;
     StartPause : TStartPause;
     KeysStatus : byte;
     FrameCount : byte;
     Out0Data : word;
     Out1Data : word;
     In0Data : word;
     In1Data : word;
     CheckSound : byte;
     SoundFrequency : word;
     SoundDuration : byte
  end;
в такой же последовательности проводится и сохранение, а «размерность» так данные (тип TStartPause = 0..1000;) итак имеют свои размеры. В данном примере считываю byte, word, два byte, четыре word, byte, word, byte. И, естественно, SizeOf(TTaskList) вернет, подсчитаем  5 раз по байту, 6 по слову, итого 17 байт (описание функции можно найти, например, тут http://www.delphibasics.ru/SizeOf.php. К стати там приведен пример и для данных типа запись).
Проблема, как я понимаю классическая, в правильно формулировке задачи. Не в обиду будет сказано, будем профессионалами, сформулировать задачу намного сложнее, чем ее решить, но, не сформулировав правильно задачу ее не решить. Завел как привычку с подачи сейчас забытого Питера Нортона (Piter Norton), был в эпоху DOS файловый менеджер Norton Commander все сомнительные или непонятные коды испытывать в отдельном приложении, в те времена это программе.
Для начала считать число «записей» а далее последовательно все записи, заполняя ими, например StringGrind. Уверяю, не сразу, а может быть и нет, все станет на свои места. Если же определение (формальное) записи неизвестно, то тут придется «попотеть».
Когда читаю «Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке"» то понимаю, что для функционирования … полученных из файла данных достаточно. А значит и для прочтения массива записей из файла так же вполне достаточно.
Сам сначала отработал в отдельном приложении процедуры сохранения и загрузки «заданий для управления экспериментальной установкой» TTaskList и только потом добавил их в качестве методов спецализированного компонента. И то, что я сохраняю записи в ini файле роли не играет. Уверяю, никакие усилия, о тестовых приложениях, не будут безрезультатными. Удачи.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Piter
Дата 30.11.2016, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.8.2008

Репутация: нет
Всего: нет



Начнем с конца и немного подробней.
Сразу, вспомнив, что речь идет о программировании, а не об аппаратных вопросах, повторюсь, речь не идет о разрядности шины. Пусть у нас с Вами работает 64-разрядный процессор, соответственно, установленный в поддерживающую его материнскую плату. При этом установлена 32-х разрядная версия Windows XP, не 64-х разрядная версия Windows XP, не 32-ти или 64-х разрядный Windows 7 и так далее. При этом процессор поддерживает и 64-х разрядные инструкции. Мы все равно имеем дало с 32-х разрядная инструкциями. Еще раз повторю, не о разрядности данных идет речь. Я, как и раньше, могу загрузить в регистр, например, AL (откинем некоторые нюансы, связанные с «выравниванием», так просто не объяснить, при всем желании) байт данных
mov AL,55h.
Для полного понимания, как всегда, следует обратиться к литературе. Отвлекусь, ранее я только наблюдал за перепиской на этом форуме и на нескольких других. Наблюдения так же приносили немало пользы. Свои проблемы, так получилось, привык решать сам. Пусть не всегда быстро, но верно. Помню, что «человек умеет только то, чему научился сам». Правда учиться нас не учили и не учат. И всему, опять-таки, приходится учиться самому. Итак, о разрядности (записываю это, так же «оживляю» казалось давние воспоминания – языки высокого уровня «притупляют» это. Стоит присмотреться к тексту и можно увидеть нечто «аппаратно зависимые типы». Так тип integer оказывается, насколько помню, аппаратно зависимым. В Delphi 1 это было 16-ти разрядное число, а Delphi 2 и далее до появления 64 разрядных компиляторов - 32-ти разрядное число). Итак для 16-ти разрядных инструкций:
source db 256 dup (?) ;некая строка данных

mov DS, offset source

Все работает нормально. Попытка скомпилировать это в том же Delphi 2÷7 оканчивается сообщением об ошибке. Сейчас не пытался повторить это чтобы, записать сообщение компилятора. Давно на этапе использования Delphi 2 применяя встроенный ассемблер долго «ловился» на этом перенося ассемблеровские процедуры Delphi 1 в следующую версию – всегда машинально забывал, что работаю не в версии 1, а в 2 и работаю не в Windows 3.11, а Windows 95. Но стоит немного, с точки зрения текста, изменить:

mov EDS, offset source

и все нормально. Но это, же относится и к системным обращения (обращениям к системным процедурам), которые содержаться в системных DLL. Стоит только раз увидеть простой фрагмент текста дизассемблера

0044338F E88B2Dffff call 0043612C

это обращение к подпрограмме по 32-х разрядному адресу. И тут я ловлю себя на том, что пытаюсь чрезвычайно кратко написать о том, что описывают не тонкие книги. Это, по сути, не верно. Знаю, примеры, по сути, ограничены. Можно пропустить или не понять нюансы. Но когда суть неизвестна, следует к ней обратиться. Будем профессионалами, будем учиться. Всегда учиться. Итак:
литературы по ассемблеру много. У меня на полке стоят несколько книг, многие есть в НЕТЕ.
Более близкая мене и моей «работы»
Рудаков П.И., К.Г. Финогенов Язык ассемблера: уроки программирования
есть
Пирогов В. Ассемблер для Windows
Голубь Н.Г. Искусство программирования на ассемблере
неслабо оценивается
Пирогов В. Ассемблер и дизассемблер.
Это, разумеется, не полный список, но что есть, то есть. Но вернемся к сути.
Стоит найти в НЕТЕ тему, связанную с сохранение и загрузкой данных типа record, сразу становится понятно. Вы что-то упустили в описании процедур сохранения и чтения данных из файла. Фраза «я не точно знаю последовательность и размерность полей Record» означает исключительно, извините, только незнание. Просто попытайтесь найти, например, «запись и чтение записей в файл Delphi»
Например
http://www.delphisources.ru/pages/faq/base...ds_to_file.html
хоть немного объяснений.
http://www.cyberforum.ru/delphi-beginners/thread80418.html
примеры, которые можно принять за основу для работы.
Я ограничился только этими ссылками.
Странным кажется, что зная структуру и, к тому же длину данных, возникает проблема считать данные из файла. В чем при таком состоянии задачи состоит проблема? Стоит провести простой эксперимент. Создайте простенькое приложение с данными представленными в виде записи. Запись может содержать любые данные. Пусть это будут, например, данные типов byte, word и string.
Сохраните эту запись в файл. А затем с учетом типов считайте (функция SizeOf вернет размер записи) из этого файла. Сейчас немного понимаю фразу о «пустых», не уверен в формулировке, полей в базе данных. Понимаю, хоть и не работал никогда с базами данных, что если мы храним в базе данные формата, например, byte, то в нем хранится значение, например нулевое, но ни как «пустое». И что значит пустое - при работе независимо от содержания (смысл на совести программиста) в памяти выделяется только один байт для этих данных. При этом нулевое значение данных типа word занимается в файле два байта (в каком порядке, первым пишется старший или младший байт, проводится запись, роли не играет). И при считывании этих данных независимо от их содержания, будут считаны для байта. Теперь ответ на простой вопрос «я не точно знаю последовательность и размерность полей Record». Последовательность – так в какой объявлена запись. Например (из моего собственного проекта управления экспериментальной установкой спекло-интерферометрии):
  TTaskList = record
     WorkStatus : byte;
     StartPause : TStartPause;
     KeysStatus : byte;
     FrameCount : byte;
     Out0Data : word;
     Out1Data : word;
     In0Data : word;
     In1Data : word;
     CheckSound : byte;
     SoundFrequency : word;
     SoundDuration : byte
  end;
в такой же последовательности проводится и сохранение, а «размерность» так данные (тип TStartPause = 0..1000;) итак имеют свои размеры. В данном примере считываю byte, word, два byte, четыре word, byte, word, byte. И, естественно, SizeOf(TTaskList) вернет, подсчитаем  5 раз по байту, 6 по слову, итого 17 байт (описание функции можно найти, например, тут http://www.delphibasics.ru/SizeOf.php. К стати там приведен пример и для данных типа запись).
Проблема, как я понимаю классическая, в правильно формулировке задачи. Не в обиду будет сказано, будем профессионалами, сформулировать задачу намного сложнее, чем ее решить, но, не сформулировав правильно задачу ее не решить. Завел как привычку с подачи сейчас забытого Питера Нортона (Piter Norton), был в эпоху DOS файловый менеджер Norton Commander все сомнительные или непонятные коды испытывать в отдельном приложении, в те времена это программе.
Для начала считать число «записей» а далее последовательно все записи, заполняя ими, например StringGrind. Уверяю, не сразу, а может быть и нет, все станет на свои места. Если же определение (формальное) записи неизвестно, то тут придется «попотеть».
Когда читаю «Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке"» то понимаю, что для функционирования … полученных из файла данных достаточно. А значит и для прочтения массива записей из файла так же вполне достаточно.
Сам сначала отработал в отдельном приложении процедуры сохранения и загрузки «заданий для управления экспериментальной установкой» TTaskList и только потом добавил их в качестве методов спецализированного компонента. И то, что я сохраняю записи в ini файле роли не играет. Уверяю, никакие усилия, о тестовых приложениях, не будут безрезультатными. Удачи.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Piter
Дата 30.11.2016, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.8.2008

Репутация: нет
Всего: нет



Начнем с конца и немного подробней.
Сразу, вспомнив, что речь идет о программировании, а не об аппаратных вопросах, повторюсь, речь не идет о разрядности шины. Пусть у нас с Вами работает 64-разрядный процессор, соответственно, установленный в поддерживающую его материнскую плату. При этом установлена 32-х разрядная версия Windows XP, не 64-х разрядная версия Windows XP, не 32-ти или 64-х разрядный Windows 7 и так далее. При этом процессор поддерживает и 64-х разрядные инструкции. Мы все равно имеем дало с 32-х разрядная инструкциями. Еще раз повторю, не о разрядности данных идет речь. Я, как и раньше, могу загрузить в регистр, например, AL (откинем некоторые нюансы, связанные с «выравниванием», так просто не объяснить, при всем желании) байт данных
mov AL,55h.
Для полного понимания, как всегда, следует обратиться к литературе. Отвлекусь, ранее я только наблюдал за перепиской на этом форуме и на нескольких других. Наблюдения так же приносили немало пользы. Свои проблемы, так получилось, привык решать сам. Пусть не всегда быстро, но верно. Помню, что «человек умеет только то, чему научился сам». Правда учиться нас не учили и не учат. И всему, опять-таки, приходится учиться самому. Итак, о разрядности (записываю это, так же «оживляю» казалось давние воспоминания – языки высокого уровня «притупляют» это. Стоит присмотреться к тексту и можно увидеть нечто «аппаратно зависимые типы». Так тип integer оказывается, насколько помню, аппаратно зависимым. В Delphi 1 это было 16-ти разрядное число, а Delphi 2 и далее до появления 64 разрядных компиляторов - 32-ти разрядное число). Итак для 16-ти разрядных инструкций:
source db 256 dup (?) ;некая строка данных

mov DS, offset source

Все работает нормально. Попытка скомпилировать это в том же Delphi 2÷7 оканчивается сообщением об ошибке. Сейчас не пытался повторить это чтобы, записать сообщение компилятора. Давно на этапе использования Delphi 2 применяя встроенный ассемблер долго «ловился» на этом перенося ассемблеровские процедуры Delphi 1 в следующую версию – всегда машинально забывал, что работаю не в версии 1, а в 2 и работаю не в Windows 3.11, а Windows 95. Но стоит немного, с точки зрения текста, изменить:

mov EDS, offset source

и все нормально. Но это, же относится и к системным обращения (обращениям к системным процедурам), которые содержаться в системных DLL. Стоит только раз увидеть простой фрагмент текста дизассемблера

0044338F E88B2Dffff call 0043612C

это обращение к подпрограмме по 32-х разрядному адресу. И тут я ловлю себя на том, что пытаюсь чрезвычайно кратко написать о том, что описывают не тонкие книги. Это, по сути, не верно. Знаю, примеры, по сути, ограничены. Можно пропустить или не понять нюансы. Но когда суть неизвестна, следует к ней обратиться. Будем профессионалами, будем учиться. Всегда учиться. Итак:
литературы по ассемблеру много. У меня на полке стоят несколько книг, многие есть в НЕТЕ.
Более близкая мене и моей «работы»
Рудаков П.И., К.Г. Финогенов Язык ассемблера: уроки программирования
есть
Пирогов В. Ассемблер для Windows
Голубь Н.Г. Искусство программирования на ассемблере
неслабо оценивается
Пирогов В. Ассемблер и дизассемблер.
Это, разумеется, не полный список, но что есть, то есть. Но вернемся к сути.
Стоит найти в НЕТЕ тему, связанную с сохранение и загрузкой данных типа record, сразу становится понятно. Вы что-то упустили в описании процедур сохранения и чтения данных из файла. Фраза «я не точно знаю последовательность и размерность полей Record» означает исключительно, извините, только незнание. Просто попытайтесь найти, например, «запись и чтение записей в файл Delphi»
Например
http://www.delphisources.ru/pages/faq/base...ds_to_file.html
хоть немного объяснений.
http://www.cyberforum.ru/delphi-beginners/thread80418.html
примеры, которые можно принять за основу для работы.
Я ограничился только этими ссылками.
Странным кажется, что зная структуру и, к тому же длину данных, возникает проблема считать данные из файла. В чем при таком состоянии задачи состоит проблема? Стоит провести простой эксперимент. Создайте простенькое приложение с данными представленными в виде записи. Запись может содержать любые данные. Пусть это будут, например, данные типов byte, word и string.
Сохраните эту запись в файл. А затем с учетом типов считайте (функция SizeOf вернет размер записи) из этого файла. Сейчас немного понимаю фразу о «пустых», не уверен в формулировке, полей в базе данных. Понимаю, хоть и не работал никогда с базами данных, что если мы храним в базе данные формата, например, byte, то в нем хранится значение, например нулевое, но ни как «пустое». И что значит пустое - при работе независимо от содержания (смысл на совести программиста) в памяти выделяется только один байт для этих данных. При этом нулевое значение данных типа word занимается в файле два байта (в каком порядке, первым пишется старший или младший байт, проводится запись, роли не играет). И при считывании этих данных независимо от их содержания, будут считаны для байта. Теперь ответ на простой вопрос «я не точно знаю последовательность и размерность полей Record». Последовательность – так в какой объявлена запись. Например (из моего собственного проекта управления экспериментальной установкой спекло-интерферометрии):
  TTaskList = record
     WorkStatus : byte;
     StartPause : TStartPause;
     KeysStatus : byte;
     FrameCount : byte;
     Out0Data : word;
     Out1Data : word;
     In0Data : word;
     In1Data : word;
     CheckSound : byte;
     SoundFrequency : word;
     SoundDuration : byte
  end;
в такой же последовательности проводится и сохранение, а «размерность» так данные (тип TStartPause = 0..1000;) итак имеют свои размеры. В данном примере считываю byte, word, два byte, четыре word, byte, word, byte. И, естественно, SizeOf(TTaskList) вернет, подсчитаем  5 раз по байту, 6 по слову, итого 17 байт (описание функции можно найти, например, тут http://www.delphibasics.ru/SizeOf.php. К стати там приведен пример и для данных типа запись).
Проблема, как я понимаю классическая, в правильно формулировке задачи. Не в обиду будет сказано, будем профессионалами, сформулировать задачу намного сложнее, чем ее решить, но, не сформулировав правильно задачу ее не решить. Завел как привычку с подачи сейчас забытого Питера Нортона (Piter Norton), был в эпоху DOS файловый менеджер Norton Commander все сомнительные или непонятные коды испытывать в отдельном приложении, в те времена это программе.
Для начала считать число «записей» а далее последовательно все записи, заполняя ими, например StringGrind. Уверяю, не сразу, а может быть и нет, все станет на свои места. Если же определение (формальное) записи неизвестно, то тут придется «попотеть».
Когда читаю «Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке"» то понимаю, что для функционирования … полученных из файла данных достаточно. А значит и для прочтения массива записей из файла так же вполне достаточно.
Сам сначала отработал в отдельном приложении процедуры сохранения и загрузки «заданий для управления экспериментальной установкой» TTaskList и только потом добавил их в качестве методов спецализированного компонента. И то, что я сохраняю записи в ini файле роли не играет. Уверяю, никакие усилия, о тестовых приложениях, не будут безрезультатными. Удачи.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Piter
Дата 30.11.2016, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.8.2008

Репутация: нет
Всего: нет



Начнем с конца и немного подробней.
Сразу, вспомнив, что речь идет о программировании, а не об аппаратных вопросах, повторюсь, речь не идет о разрядности шины. Пусть у нас с Вами работает 64-разрядный процессор, соответственно, установленный в поддерживающую его материнскую плату. При этом установлена 32-х разрядная версия Windows XP, не 64-х разрядная версия Windows XP, не 32-ти или 64-х разрядный Windows 7 и так далее. При этом процессор поддерживает и 64-х разрядные инструкции. Мы все равно имеем дало с 32-х разрядная инструкциями. Еще раз повторю, не о разрядности данных идет речь. Я, как и раньше, могу загрузить в регистр, например, AL (откинем некоторые нюансы, связанные с «выравниванием», так просто не объяснить, при всем желании) байт данных
mov AL,55h.
Для полного понимания, как всегда, следует обратиться к литературе. Отвлекусь, ранее я только наблюдал за перепиской на этом форуме и на нескольких других. Наблюдения так же приносили немало пользы. Свои проблемы, так получилось, привык решать сам. Пусть не всегда быстро, но верно. Помню, что «человек умеет только то, чему научился сам». Правда учиться нас не учили и не учат. И всему, опять-таки, приходится учиться самому. Итак, о разрядности (записываю это, так же «оживляю» казалось давние воспоминания – языки высокого уровня «притупляют» это. Стоит присмотреться к тексту и можно увидеть нечто «аппаратно зависимые типы». Так тип integer оказывается, насколько помню, аппаратно зависимым. В Delphi 1 это было 16-ти разрядное число, а Delphi 2 и далее до появления 64 разрядных компиляторов - 32-ти разрядное число). Итак для 16-ти разрядных инструкций:
source db 256 dup (?) ;некая строка данных

mov DS, offset source

Все работает нормально. Попытка скомпилировать это в том же Delphi 2÷7 оканчивается сообщением об ошибке. Сейчас не пытался повторить это чтобы, записать сообщение компилятора. Давно на этапе использования Delphi 2 применяя встроенный ассемблер долго «ловился» на этом перенося ассемблеровские процедуры Delphi 1 в следующую версию – всегда машинально забывал, что работаю не в версии 1, а в 2 и работаю не в Windows 3.11, а Windows 95. Но стоит немного, с точки зрения текста, изменить:

mov EDS, offset source

и все нормально. Но это, же относится и к системным обращения (обращениям к системным процедурам), которые содержаться в системных DLL. Стоит только раз увидеть простой фрагмент текста дизассемблера

0044338F E88B2Dffff call 0043612C

это обращение к подпрограмме по 32-х разрядному адресу. И тут я ловлю себя на том, что пытаюсь чрезвычайно кратко написать о том, что описывают не тонкие книги. Это, по сути, не верно. Знаю, примеры, по сути, ограничены. Можно пропустить или не понять нюансы. Но когда суть неизвестна, следует к ней обратиться. Будем профессионалами, будем учиться. Всегда учиться. Итак:
литературы по ассемблеру много. У меня на полке стоят несколько книг, многие есть в НЕТЕ.
Более близкая мене и моей «работы»
Рудаков П.И., К.Г. Финогенов Язык ассемблера: уроки программирования
есть
Пирогов В. Ассемблер для Windows
Голубь Н.Г. Искусство программирования на ассемблере
неслабо оценивается
Пирогов В. Ассемблер и дизассемблер.
Это, разумеется, не полный список, но что есть, то есть. Но вернемся к сути.
Стоит найти в НЕТЕ тему, связанную с сохранение и загрузкой данных типа record, сразу становится понятно. Вы что-то упустили в описании процедур сохранения и чтения данных из файла. Фраза «я не точно знаю последовательность и размерность полей Record» означает исключительно, извините, только незнание. Просто попытайтесь найти, например, «запись и чтение записей в файл Delphi»
Например
http://www.delphisources.ru/pages/faq/base...ds_to_file.html
хоть немного объяснений.
http://www.cyberforum.ru/delphi-beginners/thread80418.html
примеры, которые можно принять за основу для работы.
Я ограничился только этими ссылками.
Странным кажется, что зная структуру и, к тому же длину данных, возникает проблема считать данные из файла. В чем при таком состоянии задачи состоит проблема? Стоит провести простой эксперимент. Создайте простенькое приложение с данными представленными в виде записи. Запись может содержать любые данные. Пусть это будут, например, данные типов byte, word и string.
Сохраните эту запись в файл. А затем с учетом типов считайте (функция SizeOf вернет размер записи) из этого файла. Сейчас немного понимаю фразу о «пустых», не уверен в формулировке, полей в базе данных. Понимаю, хоть и не работал никогда с базами данных, что если мы храним в базе данные формата, например, byte, то в нем хранится значение, например нулевое, но ни как «пустое». И что значит пустое - при работе независимо от содержания (смысл на совести программиста) в памяти выделяется только один байт для этих данных. При этом нулевое значение данных типа word занимается в файле два байта (в каком порядке, первым пишется старший или младший байт, проводится запись, роли не играет). И при считывании этих данных независимо от их содержания, будут считаны для байта. Теперь ответ на простой вопрос «я не точно знаю последовательность и размерность полей Record». Последовательность – так в какой объявлена запись. Например (из моего собственного проекта управления экспериментальной установкой спекло-интерферометрии):
  TTaskList = record
     WorkStatus : byte;
     StartPause : TStartPause;
     KeysStatus : byte;
     FrameCount : byte;
     Out0Data : word;
     Out1Data : word;
     In0Data : word;
     In1Data : word;
     CheckSound : byte;
     SoundFrequency : word;
     SoundDuration : byte
  end;
в такой же последовательности проводится и сохранение, а «размерность» так данные (тип TStartPause = 0..1000;) итак имеют свои размеры. В данном примере считываю byte, word, два byte, четыре word, byte, word, byte. И, естественно, SizeOf(TTaskList) вернет, подсчитаем  5 раз по байту, 6 по слову, итого 17 байт (описание функции можно найти, например, тут http://www.delphibasics.ru/SizeOf.php. К стати там приведен пример и для данных типа запись).
Проблема, как я понимаю классическая, в правильно формулировке задачи. Не в обиду будет сказано, будем профессионалами, сформулировать задачу намного сложнее, чем ее решить, но, не сформулировав правильно задачу ее не решить. Завел как привычку с подачи сейчас забытого Питера Нортона (Piter Norton), был в эпоху DOS файловый менеджер Norton Commander все сомнительные или непонятные коды испытывать в отдельном приложении, в те времена это программе.
Для начала считать число «записей» а далее последовательно все записи, заполняя ими, например StringGrind. Уверяю, не сразу, а может быть и нет, все станет на свои места. Если же определение (формальное) записи неизвестно, то тут придется «попотеть».
Когда читаю «Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке"» то понимаю, что для функционирования … полученных из файла данных достаточно. А значит и для прочтения массива записей из файла так же вполне достаточно.
Сам сначала отработал в отдельном приложении процедуры сохранения и загрузки «заданий для управления экспериментальной установкой» TTaskList и только потом добавил их в качестве методов спецализированного компонента. И то, что я сохраняю записи в ini файле роли не играет. Уверяю, никакие усилия, о тестовых приложениях, не будут безрезультатными. Удачи.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Piter
Дата 30.11.2016, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.8.2008

Репутация: нет
Всего: нет



Начнем с конца и немного подробней.
Сразу, вспомнив, что речь идет о программировании, а не об аппаратных вопросах, повторюсь, речь не идет о разрядности шины. Пусть у нас с Вами работает 64-разрядный процессор, соответственно, установленный в поддерживающую его материнскую плату. При этом установлена 32-х разрядная версия Windows XP, не 64-х разрядная версия Windows XP, не 32-ти или 64-х разрядный Windows 7 и так далее. При этом процессор поддерживает и 64-х разрядные инструкции. Мы все равно имеем дало с 32-х разрядная инструкциями. Еще раз повторю, не о разрядности данных идет речь. Я, как и раньше, могу загрузить в регистр, например, AL (откинем некоторые нюансы, связанные с «выравниванием», так просто не объяснить, при всем желании) байт данных
mov AL,55h.
Для полного понимания, как всегда, следует обратиться к литературе. Отвлекусь, ранее я только наблюдал за перепиской на этом форуме и на нескольких других. Наблюдения так же приносили немало пользы. Свои проблемы, так получилось, привык решать сам. Пусть не всегда быстро, но верно. Помню, что «человек умеет только то, чему научился сам». Правда учиться нас не учили и не учат. И всему, опять-таки, приходится учиться самому. Итак, о разрядности (записываю это, так же «оживляю» казалось давние воспоминания – языки высокого уровня «притупляют» это. Стоит присмотреться к тексту и можно увидеть нечто «аппаратно зависимые типы». Так тип integer оказывается, насколько помню, аппаратно зависимым. В Delphi 1 это было 16-ти разрядное число, а Delphi 2 и далее до появления 64 разрядных компиляторов - 32-ти разрядное число). Итак для 16-ти разрядных инструкций:
source db 256 dup (?) ;некая строка данных

mov DS, offset source

Все работает нормально. Попытка скомпилировать это в том же Delphi 2÷7 оканчивается сообщением об ошибке. Сейчас не пытался повторить это чтобы, записать сообщение компилятора. Давно на этапе использования Delphi 2 применяя встроенный ассемблер долго «ловился» на этом перенося ассемблеровские процедуры Delphi 1 в следующую версию – всегда машинально забывал, что работаю не в версии 1, а в 2 и работаю не в Windows 3.11, а Windows 95. Но стоит немного, с точки зрения текста, изменить:

mov EDS, offset source

и все нормально. Но это, же относится и к системным обращения (обращениям к системным процедурам), которые содержаться в системных DLL. Стоит только раз увидеть простой фрагмент текста дизассемблера

0044338F E88B2Dffff call 0043612C

это обращение к подпрограмме по 32-х разрядному адресу. И тут я ловлю себя на том, что пытаюсь чрезвычайно кратко написать о том, что описывают не тонкие книги. Это, по сути, не верно. Знаю, примеры, по сути, ограничены. Можно пропустить или не понять нюансы. Но когда суть неизвестна, следует к ней обратиться. Будем профессионалами, будем учиться. Всегда учиться. Итак:
литературы по ассемблеру много. У меня на полке стоят несколько книг, многие есть в НЕТЕ.
Более близкая мене и моей «работы»
Рудаков П.И., К.Г. Финогенов Язык ассемблера: уроки программирования
есть
Пирогов В. Ассемблер для Windows
Голубь Н.Г. Искусство программирования на ассемблере
неслабо оценивается
Пирогов В. Ассемблер и дизассемблер.
Это, разумеется, не полный список, но что есть, то есть. Но вернемся к сути.
Стоит найти в НЕТЕ тему, связанную с сохранение и загрузкой данных типа record, сразу становится понятно. Вы что-то упустили в описании процедур сохранения и чтения данных из файла. Фраза «я не точно знаю последовательность и размерность полей Record» означает исключительно, извините, только незнание. Просто попытайтесь найти, например, «запись и чтение записей в файл Delphi»
Например
http://www.delphisources.ru/pages/faq/base...ds_to_file.html
хоть немного объяснений.
http://www.cyberforum.ru/delphi-beginners/thread80418.html
примеры, которые можно принять за основу для работы.
Я ограничился только этими ссылками.
Странным кажется, что зная структуру и, к тому же длину данных, возникает проблема считать данные из файла. В чем при таком состоянии задачи состоит проблема? Стоит провести простой эксперимент. Создайте простенькое приложение с данными представленными в виде записи. Запись может содержать любые данные. Пусть это будут, например, данные типов byte, word и string.
Сохраните эту запись в файл. А затем с учетом типов считайте (функция SizeOf вернет размер записи) из этого файла. Сейчас немного понимаю фразу о «пустых», не уверен в формулировке, полей в базе данных. Понимаю, хоть и не работал никогда с базами данных, что если мы храним в базе данные формата, например, byte, то в нем хранится значение, например нулевое, но ни как «пустое». И что значит пустое - при работе независимо от содержания (смысл на совести программиста) в памяти выделяется только один байт для этих данных. При этом нулевое значение данных типа word занимается в файле два байта (в каком порядке, первым пишется старший или младший байт, проводится запись, роли не играет). И при считывании этих данных независимо от их содержания, будут считаны для байта. Теперь ответ на простой вопрос «я не точно знаю последовательность и размерность полей Record». Последовательность – так в какой объявлена запись. Например (из моего собственного проекта управления экспериментальной установкой спекло-интерферометрии):
  TTaskList = record
     WorkStatus : byte;
     StartPause : TStartPause;
     KeysStatus : byte;
     FrameCount : byte;
     Out0Data : word;
     Out1Data : word;
     In0Data : word;
     In1Data : word;
     CheckSound : byte;
     SoundFrequency : word;
     SoundDuration : byte
  end;
в такой же последовательности проводится и сохранение, а «размерность» так данные (тип TStartPause = 0..1000;) итак имеют свои размеры. В данном примере считываю byte, word, два byte, четыре word, byte, word, byte. И, естественно, SizeOf(TTaskList) вернет, подсчитаем  5 раз по байту, 6 по слову, итого 17 байт (описание функции можно найти, например, тут http://www.delphibasics.ru/SizeOf.php. К стати там приведен пример и для данных типа запись).
Проблема, как я понимаю классическая, в правильно формулировке задачи. Не в обиду будет сказано, будем профессионалами, сформулировать задачу намного сложнее, чем ее решить, но, не сформулировав правильно задачу ее не решить. Завел как привычку с подачи сейчас забытого Питера Нортона (Piter Norton), был в эпоху DOS файловый менеджер Norton Commander все сомнительные или непонятные коды испытывать в отдельном приложении, в те времена это программе.
Для начала считать число «записей» а далее последовательно все записи, заполняя ими, например StringGrind. Уверяю, не сразу, а может быть и нет, все станет на свои места. Если же определение (формальное) записи неизвестно, то тут придется «попотеть».
Когда читаю «Так вот этот самый Turbo Access и обеспечивает чтение/контроль/запись данных с учетом того, что в "приставке"» то понимаю, что для функционирования … полученных из файла данных достаточно. А значит и для прочтения массива записей из файла так же вполне достаточно.
Сам сначала отработал в отдельном приложении процедуры сохранения и загрузки «заданий для управления экспериментальной установкой» TTaskList и только потом добавил их в качестве методов спецализированного компонента. И то, что я сохраняю записи в ini файле роли не играет. Уверяю, никакие усилия, о тестовых приложениях, не будут безрезультатными. Удачи.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 30.11.2016, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Спасибо, Peter, за пространный ответ.
Основная цель всего действа - переложить DOS"овский файл БД с утерянными процедурами доступа на современный формат. Вся проблема сводилась к тому, что я не знаю точно последовательность и размерность полей в Record. А читать-писать саму Record (как Array [...] of Char с известным размером массива) проблемы нет, только вот внутри Record  получается дыра с неизвестным содержанием.  Я об этом уже несколько раз говорил. Хотел с помощью Turbo Access прочесть все поля и затем переложить на современный вариант.  Нашел другой способ  - договорился с владельцем БД, он пустит меня на программу, пользующую эту БД, создать еще одну запись. Там я заполню все поля, а в самой БД потом просмотрю их последовательность и размерность.
Честно говоря, развлекаться с боданием этой БД ради искусства нет ни времени, ни желания. Нужен результат.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 30.11.2016, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Спасибо, Peter, за пространный ответ.
Основная цель всего действа - переложить DOS"овский файл БД с утерянными процедурами доступа на современный формат. Вся проблема сводилась к тому, что я не знаю точно последовательность и размерность полей в Record. А читать-писать саму Record (как Array [...] of Char с известным размером массива) проблемы нет, только вот внутри Record  получается дыра с неизвестным содержанием.  Я об этом уже несколько раз говорил. Хотел с помощью Turbo Access прочесть все поля и затем переложить на современный вариант.  Нашел другой способ  - договорился с владельцем БД, он пустит меня на программу, пользующую эту БД, создать еще одну запись. Там я заполню все поля, а в самой БД потом просмотрю их последовательность и размерность.
Честно говоря, развлекаться с боданием этой БД ради искусства нет ни времени, ни желания. Нужен результат.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 30.11.2016, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Спасибо, Peter, за пространный ответ.
Основная цель всего действа - переложить DOS"овский файл БД с утерянными процедурами доступа на современный формат. Вся проблема сводилась к тому, что я не знаю точно последовательность и размерность полей в Record. А читать-писать саму Record (как Array [...] of Char с известным размером массива) проблемы нет, только вот внутри Record  получается дыра с неизвестным содержанием.  Я об этом уже несколько раз говорил. Хотел с помощью Turbo Access прочесть все поля и затем переложить на современный вариант.  Нашел другой способ  - договорился с владельцем БД, он пустит меня на программу, пользующую эту БД, создать еще одну запись. Там я заполню все поля, а в самой БД потом просмотрю их последовательность и размерность.
Честно говоря, развлекаться с боданием этой БД ради искусства нет ни времени, ни желания. Нужен результат.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
ZakharAV
Дата 30.11.2016, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 4.10.2009

Репутация: нет
Всего: нет



Спасибо, Peter, за пространный ответ.
Основная цель всего действа - переложить DOS"овский файл БД с утерянными процедурами доступа на современный формат. Вся проблема сводилась к тому, что я не знаю точно последовательность и размерность полей в Record. А читать-писать саму Record (как Array [...] of Char с известным размером массива) проблемы нет, только вот внутри Record  получается дыра с неизвестным содержанием.  Я об этом уже несколько раз говорил. Хотел с помощью Turbo Access прочесть все поля и затем переложить на современный вариант.  Нашел другой способ  - договорился с владельцем БД, он пустит меня на программу, пользующую эту БД, создать еще одну запись. Там я заполню все поля, а в самой БД потом просмотрю их последовательность и размерность.
Честно говоря, развлекаться с боданием этой БД ради искусства нет ни времени, ни желания. Нужен результат.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1752 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.