Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-21595
neodiX
2002-10-28 21:36
2002.11.07
ShellListView


14-21769
GOD
2002-10-17 02:37
2002.11.07
Windows windows MUST Die!!!


14-21781
TankMan
2002-10-18 22:39
2002.11.07
Icon-ка левого exe в SpeedButton


1-21618
Balu
2002-10-23 15:33
2002.11.07
---|Ветка была без названия|---


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский