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

Вниз

Длина текста в переменной   Найти похожие ветки 

 
Freezz   (2006-02-01 19:23) [0]

Приветсвую вас, мастера!

Вот значит написал я такой код


var
Buff: pointer;
Size: dword;
Bytes: dword;
dFile: dword;
begin
...
dFile := CreateFile(Pchar("textfile.txt"), GENERIC_READ, 0, nil, OPEN_ALWAYS, 0, 0);
ReadFile(dFile, Buff^, Size, Bytes, nil);
CloseHandle(dFile);
end;

теперь вопрос, этим способом читаю я строки из текстового файла
при выводе MessageBoxA(0,Buff,"",0);
все выводиться правильно
Как мне узнать длину строки, что я считал?
SizeOf(Buff) не работает почему то.
length(Buff) показывает несовместимость типов..
вот в этом собственно и проблема


 
Джо ©   (2006-02-01 19:34) [1]

1. Под Buff ты должен выделить память САМ. Еще ДО вызова ReadFile. Соответственно, размер этой области памяти ты знаешь сам.
2. Кол-во байт, действительно прочитанных, сохраняется в параметре lpNumberOfBytesRead, который у тебя вообще nil.


 
Джо ©   (2006-02-01 19:35) [2]

> [1] Джо ©   (01.02.06 19:34)

Сорри, насчет 2) проглядел. У тебя он сохраняется в Bytes.


 
Джо ©   (2006-02-01 19:41) [3]

Принцип таков:

 
 Size := 1024; // Размер области памяти
 GetMem (Buff,Size); // Выделяешь память под Buff

 if ReadFile(dFile, Buff, Size, Bytes, nil) then
 begin
   //
   // В этом месте в Buff будут находиться прочитанные данные
   // Кол-во байт, занимаемое данными, хранится в Bytes
   // Оно, разумеется <= Size
   //
 end;

 FreeMem (Buff); // Освобождаешь выделенную ранее память



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

Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.044 c
2-1138880441
WestBronx
2006-02-02 14:40
2006.02.19
Очистра экрана.


2-1138922506
promomix
2006-02-03 02:21
2006.02.19
Глюк ord на символе 26.


2-1138171812
Wolferio
2006-01-25 09:50
2006.02.19
DBGrid


2-1138598268
RUBEY
2006-01-30 08:17
2006.02.19
Передача значений в форму


2-1138896451
dera
2006-02-02 19:07
2006.02.19
Не знаю, сможете ли помочь...





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