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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение из файла побайтно. Прочитать бы... 
:(
    Опции темы
DimassS
Дата 29.5.2006, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 12.4.2006
Где: Россия, Иркустк

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



Доброго времени суток!!!! 

У меня вот какая проблема возникла, как мне прочитать из файла определённое колличество байт...

например есть строка:

Трансформаторы             123-1                 456.67                 ,01                     8956,587                    3565                и т.д.
Это String(16 байт)      str(6 байт)     Float(4 байта)    Float(4 байта)     Float(4 байта)        Integer(4 байта)

Как мне её прочитать из файла побайтно.
Читаю сначала строкой, потом побайтно разбираю:
readln(f,ss);
for i:=1 to MyCol.count do
MyCol[i]:={Как мне сказать чтобы он прочитал 16 байт из строки? и присвоил переменной массиву}
 smile  smile 

Помогите плз...
Заранее благодарю!! 
PM MAIL ICQ   Вверх
ShadeSt
Дата 29.5.2006, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 9.8.2005
Где: Россия, г. Ставро поль

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



Насколько я понял надо просто вырезать из строки 16 символов.
Код

Const
  MySizes : array[1..N] of Smallint = (16, 6, 4, ....);
....
  MyCol[i] := Copy (ss, 1, MySizes[i]);
  Delete(ss,1, MySizes[i])

Наверное, примерно так. А между данными разделитель какой нибудь есть? или они просто подряд идут? 


--------------------
It's nice to be importand, but it's more importand to be nice © Scooter
PM MAIL ICQ Jabber   Вверх
DimassS
Дата 29.5.2006, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 12.4.2006
Где: Россия, Иркустк

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



Цитата

А между данными разделитель какой нибудь есть? или они просто подряд идут?

я сам еще не знаю как они представлены, заказчик каждый день меняет... 
а чтение из файла 1 символ значит 1 байт? или я не понял... 
PM MAIL ICQ   Вверх
Romikgy
Дата 29.5.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



BlockRead
Код

var

  FromF, ToF: file;
  NumRead, NumWritten: Integer;
  Buf: array[1..2048] of Char;
begin
  if OpenDialog1.Execute then     { Display Open dialog box }
  begin
    AssignFile(FromF, OpenDialog1.FileName);
    Reset(FromF, 1);    { Record size = 1 }
    if SaveDialog1.Execute then      { Display Save dialog box}
    begin
      AssignFile(ToF, SaveDialog1.FileName);    { Open output file }

      Rewrite(ToF, 1);    { Record size = 1 }
      Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF))
        + ' bytes...');
      repeat
        BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
        BlockWrite(ToF, Buf, NumRead, NumWritten);
      until (NumRead = 0) or (NumWritten <> NumRead);
      CloseFile(FromF);
      CloseFile(ToF);
    end;
  end;
end;
 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ShadeSt
Дата 29.5.2006, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 9.8.2005
Где: Россия, г. Ставро поль

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



Цитата(DimassS @  29.5.2006,  09:10 Найти цитируемый пост)
а чтение из файла 1 символ значит 1 байт? или я не понял... 


Ну вообще для того кода, который приведен в первом посте, где чтение из файла идет по строкам, я привел пример как вытащить данные из строки, непонятно надо ли в данном случае читать файл побайтно, тем более что:
Цитата(DimassS @  29.5.2006,  08:55 Найти цитируемый пост)
Читаю сначала строкой, потом побайтно разбираю:

Если уже прочитана строка, то можно работать со строкой.
...
Говоря о кодировках: 1 символ представлен одним байтом, если не идет речь о Unicode, где для представления одного символа искользуется два байта.
 


--------------------
It's nice to be importand, but it's more importand to be nice © Scooter
PM MAIL ICQ Jabber   Вверх
DimassS
Дата 30.5.2006, 03:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 12.4.2006
Где: Россия, Иркустк

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



Круто BlokRead помог, и как я этот пример в справке не заметил... smile Romikgy Спасибо!!!! 
PM MAIL ICQ   Вверх
Romikgy
Дата 30.5.2006, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(DimassS @ 30.5.2006,  02:40)
Круто BlokRead помог, и как я этот пример в справке не заметил... smile Romikgy Спасибо!!!!

Пжалста smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
BUGOR
Дата 30.5.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если, что можно было сделать с помощью апи:

CreateFile
SetFilePointer
ReadFile
CloseHandle

Написал в той последовательность в которой надо использовать. 


--------------------
Живу недоумевая, всё время хочу понять...
http://hunger.ru 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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