Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.04 c
8-1075051942
Batoon
2004-01-25 20:32
2004.05.02
Мультимедиа


7-1077957561
Evgeniy_K
2004-02-28 11:39
2004.05.02
Cirix


4-1078828816
eRoR
2004-03-09 13:40
2004.05.02
Как узнать имя окна, активного в данный момент


3-1081319110
lehich
2004-04-07 10:25
2004.05.02
проверка на совпадения


6-1078052415
Esc
2004-02-29 14:00
2004.05.02
Packet driver or ...???





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