Главная страница
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.019 c
14-21821
michael_b
2002-10-20 22:23
2002.11.07
Про TRegistry


7-21825
Dj Karies
2002-09-04 10:51
2002.11.07
Потоки


14-21786
Rouse_
2002-10-17 21:26
2002.11.07
ВСТРЕЧА В МОСКВЕ


3-21411
@Ujin
2002-10-18 12:35
2002.11.07
Мастера! Как определить число записей в фильтрованной таблице?


6-21702
BAHO
2002-09-06 20:51
2002.11.07
TServerSocket