Главная страница
    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.46 MB
Время: 0.007 c
4-21868
Adept
2002-09-24 11:38
2002.11.07
Как сделать окно находящееся ниже всех.


14-21782
Anatoly Podgoretsky
2002-10-19 11:26
2002.11.07
Именинники 19 октября


14-21740
dimonf
2002-10-17 17:26
2002.11.07
Народ, подскажите как вытащить данные из базы данных.


4-21865
d-coder
2002-09-23 19:36
2002.11.07
И все-таки


8-21686
Самборский Евгений
2002-07-10 19:29
2002.11.07
как поместить GIF на форму





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский