![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема при работе с файловыми потоками [D6, WinXP]
Kordel © (2002-05-22 17:03:00)Вызываю такую процедуру, но все время происходит исключение на последнем операторе, причем если добавлю в конец еще что-нить все равно будет на последнем.
function FormatTextFile(InputFN, OutputFN: string): string;
var
ins: TFileStream;
str, res: string;
i: word;
begin
ins:=TFileStream.Create(InputFN,fmOpenRead);
i:=ins.Read(str,7);
FormatTextFile:=res+str;
ins.Free;
end;
Kozhanov (2002-05-22 17:45:00) [1]function FormatTextFile(InputFN, OutputFN: string): string;
var
ins: TFileStream;
AResult: string;
ABuffer : PChar;
begin
Result:= EmptyStr;
AResult := EmptyStr;
ins:=TFileStream.Create(InputFN,fmOpenRead);
ABuffer := AllocMem(7+1);
try
ins.Position := 0;
ins.Read(ABuffer^,7);
Result:= AResult + String(ABuffer);
finally
FreeMem(ABuffer, 7+1);
ins.Free;
end; //try
end;
MBo (2002-05-22 17:33:00) [2]А res и OutputFN зачем нужны?
Внук (2002-05-22 17:29:00) [3]Упс.
Так MBo уже написал. Значит, не здесь собака зарыта.
Kordel (2002-05-22 17:27:00) [4]Ничего не помогло, тогда может кто напишет, как с помощью TFileStream прочитать n байт из файла. Спасибо.
Внук (2002-05-22 17:27:00) [5]Шаманство все это, кроме SetLength. (Я-то рассчитывал на стандартную паскалевскую строку).
Kozhanov (2002-05-22 17:19:00) [6]перед
i:=ins.Read(str,7);
вставь
ins.Position := 0;
MBo (2002-05-22 17:18:00) [7]function FormatTextFile(InputFN, OutputFN: string): string;
var
ins: TFileStream;
str, res: string;
i: integer;
begin
ins:=TFileStream.Create(InputFN,fmOpenRead);
i:=min(7,ins.size);
SetLength(str,i);
ins.Read(str[1],i);
ins.Free;
Result:=res+str;
end;
Kordel (2002-05-22 17:16:00) [8]так она вызывается
(S:TStaticText)
procedure TForm1.FormatBtnClick(Sender: TObject);
begin
S.Caption:=FormatTextFile(InputEdit.Text,OutputEdit.Text);
end;
Внук (2002-05-22 17:11:00) [9]>>Kozhanov ©
То же, что и Result:=res+str;
>>Kordel
Проблема, должно быть, в неприведенном куске кода
Kozhanov (2002-05-22 17:07:00) [10]FormatTextFile:=res+str; - FormatTextFile совпадает с названием
ф-ции function FormatTextFile ... или так задумано ?