Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

считывание по символу [D4, Win95/98]


Ghost! ©   (2002-10-28 17:36:00) 

Здравствуйте! Не подскажите, как сделать так, чтоб символы из файла считывались по одному? Например, переменной "a" присвоить первый символ файла "x.xxx", переменной "b" второй символ и и т.д. Спасибо


Ghost!   (2002-10-28 20:52:00) [1]

ВСЕМ ОГРОМНОЕ СПАСИБО, ВСЁ ПОШЛО.


LongIsland   (2002-10-28 19:16:00) [2]

var
iFileHandle: Integer;
iFileLength: Integer;
iBytesRead: Integer;
Buffer: PChar;
begin
if not dgOpen.Execute then Exit;
Open:=True;
FileName:=dgOpen.FileName;
Buffer:="";
try
iFileHandle := FileOpen(FileName, fmOpenRead);
iFileLength := FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
Buffer := PChar(AllocMem(iFileLength + 1));
iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength);
FileClose(iFileHandle);
finally
FreeMem(Buffer);
end;
end;

В переменной Buffer будет содержаться все содержание файла. a:=Buffer[i];- обращение к любому символу
Пример взят из доков:-)


Ghost!   (2002-10-28 18:59:00) [3]

2 Gluka
Интересно, но у меня чего-то не идёт. Пишет Error I/O 103 и всё... Очень благодарен всем.


Gluka   (2002-10-28 18:22:00) [4]

Var
f: file of char;
FileVars: array [0..10] of char; // filesize(F)
i: integer;
begin
for i:=0 to filesize(F)-1 do
begin
seek(f,i);
Read(f,FileVars[i]);
end;
closefile(f);
end;

Каждый елемент масива->разные переменные(значение)


han_malign   (2002-10-28 17:52:00) [5]

Но грамотнее делать через блочное чтение записи фиксированного размера (можно и переменного но еще поле размера хранить). Как вариант для хранения именованных данных - Ini файл.


Anatoly Podgoretsky   (2002-10-28 17:51:00) [6]

Это сколько же переменных будет


LongIsland   (2002-10-28 17:46:00) [7]

Можно загнать его в TStringList, например, а потом оттуда счтывать хоть по одному, хоть по 10.
Можно загнать его в буфер и, соответственно, делать тоже самое. Вариантов масса:-)


Smithson   (2002-10-28 17:45:00) [8]

Эээээээээээээ, вру! После AssignFile еще Reset(F, 1) нужен!


Smithson   (2002-10-28 17:44:00) [9]

f: file;
C: Byte;
I: Integer;

...

AssifnFile(F,"x.xxx");
BlockRead(f,c,1,i);

...
CloseFile(F);

ну и свяьой F1


Наверх

Титульная страница Поиск, карта сайта Написать письмо