Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

считывание по символу   Найти похожие ветки 

 
Ghost! ©   (2002-10-28 17:36) [0]

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


 
Smithson ©   (2002-10-28 17:44) [1]

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

...

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

...
CloseFile(F);

ну и свяьой F1


 
Smithson ©   (2002-10-28 17:45) [2]

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


 
LongIsland ©   (2002-10-28 17:46) [3]

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


 
Anatoly Podgoretsky ©   (2002-10-28 17:51) [4]

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


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

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


 
Gluka ©   (2002-10-28 18:22) [6]

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;

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


 
Ghost! ©   (2002-10-28 18:59) [7]

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


 
LongIsland ©   (2002-10-28 19:16) [8]

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 20:52) [9]

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



Страницы: 1 вся ветка

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-21483
Leny
2002-10-28 13:50
2002.11.07
в SysTray


14-21735
Осирис
2002-10-16 09:43
2002.11.07
Прога для чтения форумов


1-21537
_saha_
2002-10-29 13:43
2002.11.07
ламерский вопрос


1-21655
Foxtrot
2002-10-27 22:33
2002.11.07
RANDOM - какая длина последовательности псевдо-случайных чисел.


1-21577
cybermonk
2002-10-30 08:11
2002.11.07
Winword 97, 2000, XP