Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

лишняя пустая строка   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
6-1079002166
_Guest_
2004-03-11 13:49
2004.05.02
MS Loopback Adapter


3-1081411563
Slider007
2004-04-08 12:06
2004.05.02
Имя запроса MSAccess в Delphi


11-1061807748
electric
2003-08-25 14:35
2004.05.02
Как в KOL отправить письмо?


1-1081933960
LameFox
2004-04-14 13:12
2004.05.02
Не пашет Image1.Picture.LoadFromFile(...);


1-1081862089
REA
2004-04-13 17:14
2004.05.02
Интерфейсы