Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Внизлишняя пустая строка Найти похожие ветки
← →
an-na2002 (2004-04-15 06:49) [0]Я работаю с файлом:
begin
with TStringList.Create do try
LoadFromFile(h);
Text:= AnsiReplaceText(Text, ",", ".");
SaveToFile(h);
finally
Free;
end;
h - путь к файлу.
Только появляется лишняя пустая строка, как её убрать?
← →
miwa © (2004-04-15 08:45) [1]Какая "лишняя пустая строка"? В конце файла? Прогнал тестовый код: никаких лишних строк.
procedure TForm1.Button1Click(Sender: TObject);
var s:TStringlist;i:integer;
begin
s:=tstringlist.Create;
for i:=1 to 128 do
s.Add(inttostr(i)+"qwerty");
s.SaveToFile("D:\s.txt");
s.free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var h:string;
begin
h:="D:\s.txt";
with TStringList.Create do try
LoadFromFile(h);
Text:= AnsiReplaceText(Text, ",", ".");
SaveToFile("D:\s1.txt");
finally
Free;
end;
end;
← →
an-na2002 (2004-04-15 08:51) [2]read(Vf,w,t);
w:=w;
t:=t;
writeln(Vff,w,t);
Vf и Vff - TextFile;
Попробуй и посмотри.
← →
miwa © (2004-04-15 09:00) [3]
w:=w;
t:=t;
Круто. Rose_!!!! Кто-то срочно хочет в "Орешник"!!!. Возможно, что и я ;о))
А что касается Read и WriteLn...
А Вы попробуйте Read/Write ;o))
Да. Если размерность w и t по 1 байту (итого 2 байта), то размер vff у Вас 4 байта. Подумайте на досуге, почему? ;о)))))))
← →
Семен Сорокин © (2004-04-15 09:01) [4]an-na2002 (15.04.04 08:51) [2]
а если так:write(Vff,w,t);
← →
an-na2002 (2004-04-15 09:14) [5]Строка уже появляется в
begin
with TStringList.Create do try
LoadFromFile(h);
Text:= AnsiReplaceText(Text, ",", ".");
SaveToFile(h);
finally
Free;
end;
h - путь к файлу.
А read(Vf,w,t);
w:=w;
t:=t;
writeln(Vff,w,t);
Vf и Vff - TextFile добавляет 0.0000000 0.00000000
← →
Alx2 © (2004-04-15 10:07) [6]А я страшнее напишу :)
Procedure TForm1.Button1Click(Sender: TObject);
Procedure ReplaceCharInFile(Const FileName: String);
Var
hFile, hMap: THandle;
SizeHigh, FileSize, Idx: DWord;
FileArray: PByteArray;
Begin
hFile := CreateFile(PChar(FileName), GENERIC_WRITE Or Generic_Read, 0, Nil, OPEN_EXISTING, 0,
0);
If hFile <> INVALID_HANDLE_VALUE Then
Try
hMap := CreateFileMapping(hFile, Nil, page_readwrite, 0, 0, Nil);
If hMap <> 0 Then
Try
FileSize := GetFileSize(hFile, @SizeHigh);
If SizeHigh <> 0 Then
Raise Exception.Create("Файл слишком велик");
FileArray := MapViewOfFile(hMap, FILE_MAP_WRITE, 0, 0, 0);
If FileArray <> Nil Then
Try
For Idx := 0 To FileSize - 1 Do
If FileArray[Idx] = Byte(",") Then
FileArray[Idx] := Byte(".");
Finally
UnmapViewOfFile(FileArray)
End;
Finally
closeHandle(hMap);
End
Finally
closeHandle(hFile);
End
End;
Begin
If OpenDialog1.Execute Then
ReplaceCharInFile(OpenDialog1.FileName);
End;
← →
Rouse_ © (2004-04-15 10:32) [7]> [3] miwa © (15.04.04 09:00)
>
> w:=w;
> t:=t;
Дааа уж, верх гениальности :))))
← →
Плохиш (2004-04-15 10:44) [8]>an-na2002 (15.04.04 06:49)
Почему бы не переделать вот эти процедурки под свои нужды?
procedure TStrings.LoadFromFile(const FileName: string);
var
Stream: TStream;
begin
Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
procedure TStrings.LoadFromStream(Stream: TStream);
var
Size: Integer;
S: string;
begin
BeginUpdate;
try
Size := Stream.Size - Stream.Position;
SetString(S, nil, Size);
Stream.Read(Pointer(S)^, Size);
SetTextStr(S);
finally
EndUpdate;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c