-
Привет... Что в коде не так: грузится только часть файла? var FilL : AnsiString(или String разницы нет юмор один (результат)); FF :TextFile; begin AssignFile(FF, "указываю файл"); Reset(FF); Read(FF, FilL); CloseFile(FF); ShowMessage(FilL); //вот тут должно быть много текста, а его две строки...
Ну я понял в 255 загвоздка при String, но в AnsiString? Может в лазаре файл по другому читать надо?
-
Странно, что две. Должно быть вообще до первого пробела... Читать надо в цикле и ReadLn.
-
Не спорю, странно... Но таков юмор. Две строки это пример (реально 255 символов не больше). В цикле? А таким макаром как у меня можно? Может переменную не правильно выбрал? Когда делал перекодировку текста пишлось все String заменить на AnsiString и получилось, но почему с файлом такие приколы. И даже если читать в цикле, строка может быть больше 255, - это не вариант. Да, придется рыть дальше, может чет и вырою. Может на строку память нужно выделить.
-
> И даже если читать в цикле, строка может быть больше 255, > - это не вариант.
ReadLn вместо Read таки должен помочь, я думаю. А вообще, не проще ли считать файл сразу скопом в буфер?
-
Мечты о ReadLn окончились фиаско... Наверное руки у меня кривые, или поспать надо. Но код то детский. Абидно... О буфере, если я правильно понял о каком, если пользователь чет бросил в буфер а я напакостил (буфер своей чепухой загружу), меня как посылать будут :). Буду искать дальше возможные варианты.
-
Не в буфер обмена, а просто в выделенную область памяти. См. getMem и BlockRead
-
Function GetFile(const FileName : AnsiString) : AnsiString;
Var
F : File;
FSize : Longint;
begin
Result:='';
if not FileExists(FileName) then Exit;
FileMode:=0;
AssignFile ( F, FileName);
Reset(F, 1);
FSize:=FileSize(F);
SetLength(Result,FSize);
BlockRead(F, Result[1],FSize);
CloseFile(F);
FileMode:=2;
end;
-
Пардон за задерку, отсыпался. Попробывал загрузить в TStringList, стработало. За функцию спасибо, попробую. Сейчас над другим юмором страдаю. Вероятно эта проблемка из-за моих "кривых ручек". А среда, нормальная. Тока Ф9 работает через раз :). Интересно: вот это "Может на строку память нужно выделить." на это " а просто в выделенную область памяти" похоже по смыслу или нет? Если да, то судя по ответу я исключил свой вариант и подумал о буфере обмена. Если нет, ссори, туп я однако.
|