Уважаемые эксперты: Мне нужна Ваша помощь. Имеется типизированный файл состоящий из записей. Дело в том что когда я открыл файл для просмотра его содержимое было следующим: файл начинается с того что 100 первых байт занимает информация о компании после чего начинаются записи, которые я очень хорошо смог отличить. Когда я начал читать этот файл содержимое читаемых записей естественно было совершенно абсурдным. Когда я удалил 100 первых байт все было нормально. Так вот скажите пожалуйста как прочитать этот файл не ужаляя 100 первых байт? Это очень важно. С уважением, dude P.S Программирую на Borland Delphi(Object Pascal).
Приветствую Вас, dude! Тебе нужно открывать файл как нетипизированный. См. Приложение.
Приложение: Ответ отправлен: 16.03.2004, 16:15 Отправитель: Ayl Отвечает Snowm@n
Здравствуйте, dude! Пусть количество записей N и неизменно, тогда сделай следующее: type tunit=record ... //твоя запись end; type tfile=record info:array [1..100] of byte; unit:array [1..n] of tunit; end; var f:file of tfile; data:tfile; begin assignfile(f,'...'); reset(f); read(f,data); close(f); ... //используешь data end. Ответ отправлен: 16.03.2004, 10:57 Отправитель: Snowm@n Отвечает Strory
Доброе время суток, dude! Такой файл Вы, конечно, прочитать не сможете. Я так понимаю, что файл нужно оставить в первозданном виде, поэтому инфу о компании удалять нельзя. Тогда первое, что приходит в голову - это пропустив первые сто байт переписать остальное в другой файл (всё это, естественно программно, а не вручную) и работать уже с ним. И овцы целы, и волки сыты :)
Ответ отправлен: 16.03.2004, 18:27 Отправитель: Strory Отвечает sir henry
Добрый день, dude! Типизированый файл - это не текстовый файл. Поэтому отнеситесь к этой задаче с более нормальной головой :)). Ответ отправлен: 16.03.2004, 08:43 Отправитель: sir henry Отвечает samum2000
Приветствую вас,dude! Раз программируете на Delphi, то и пишите в рассылку по Delphi. И допишите туда кусочек кода с примером того, как вы копируете и описанием записи. -------------------------- -=Experts helper: testmode=- Ответ отправлен: 16.03.2004, 12:00 Отправитель: samum2000 Отвечает Boriss
Добрый день, dude! Все можно решить с помощью BlockRead Там указывается куда читать и сколько читать Естественно, что файл должен быть открыт как нетипизированный (var F: File) и открыт Reset(f,1); - то есть читаешь побайтно А далее, заголовок читаешь в одно место (типа Record), а все остальное - в другое Ответ отправлен: 16.03.2004, 17:51 Отправитель: Boriss Отвечает Tancho
Доброе время суток, dude! Assign (f,'1.txt'); Reset(f); Seek (f, 100); прыжок на 100 байт И далее читаем через read(f,a) Ответ отправлен: 16.03.2004, 20:05 Отправитель: Pawel
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.