Главная страница
    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.036 c
3-1080867791
kay
2004-04-02 05:03
2004.05.02
Table1, DBGrid1, значения в верхнем и нижнем регистрах.


14-1081256600
Yanis
2004-04-06 17:03
2004.05.02
Сейчас буду винт ресайзить...


1-1082032138
ASvencim
2004-04-15 16:28
2004.05.02
Как рандомайзом выбирать картинки?


1-1081931412
infom
2004-04-14 12:30
2004.05.02
Найти контрол


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





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