CommaText
От: MLT  
Дата: 08.03.05 21:57
Оценка:
У меня вот такая проблема. Есть программа которая выдаёт отчёт в иде файла. Каждая строка состоит из 2-х чисел, получается как бы 2 столбща. Необходимо разделить их в 2 разных файла. Числа в строках дробные и формат такой:
-971.089 2354.538
699.006 -5911.55
Получается что строки начинаются либо с пробела, либо сразу с числа.

h:=TStringList.Create;
h.LoadFromFile('Temp.txt');
Memo1.Lines.LoadFromFile('Temp.txt');
for i:=1 to 2048 do
begin
if Pos(' ',h[i])=0 then

Дальше я хочу задать шаблон строки

h.CommaText:=

Но чтобы я дальше не написал, выходит ошибка.
Подскажите как задать этот шаблон.
... << RSDN@Home 1.1.3 stable >>
Re: CommaText
От: kgu87  
Дата: 08.03.05 22:23
Оценка:
Здравствуйте, MLT, Вы писали:

MLT>У меня вот такая проблема. Есть программа которая выдаёт отчёт в иде файла. Каждая строка состоит из 2-х чисел, получается как бы 2 столбща. Необходимо разделить их в 2 разных файла. Числа в строках дробные и формат такой:

MLT>-971.089 2354.538
MLT> 699.006 -5911.55
MLT> Получается что строки начинаются либо с пробела, либо сразу с числа.

MLT> h:=TStringList.Create;

MLT> h.LoadFromFile('Temp.txt');
MLT> Memo1.Lines.LoadFromFile('Temp.txt');
MLT> for i:=1 to 2048 do
MLT> begin
MLT> if Pos(' ',h[i])=0 then

MLT> Дальше я хочу задать шаблон строки


MLT> h.CommaText:=


MLT> Но чтобы я дальше не написал, выходит ошибка.

MLT> Подскажите как задать этот шаблон.

Извините за встречный вопрос, но почему нельзя просто читать файл без TStringList? Что-то вроде:

var F : TextFile;
    S, s1, s2, delim : String;
    f1, f2 : TStringList;
    i, iPos : Integer;
begin
  f1 := TStringList.Create;
  f2 := TStringList.Create;
  delim := ' ';
  AssignFile(F, cFileName);
  Reset(F);
  try 
    Readln(F, S);
    while (S <> '') do
    begin
      iPos := Pos(delim, S);
      if Pos(delim, S) > 0 then   
      begin
        s1 := Copy(S, 0, iPos);
        s2 := Copy(S, iPos+1, Length(S));
        f1.Add(s1);
        f2.Add(s2);
      end;
      Readln(F, S);
    end;
    f1.SaveToFile(cFile1);
    f2.SaveToFile(cFile2);
  finally
    CloseFile(F);
    f1.Free;
    f2.Free;
   end;
end;
Re[2]: CommaText
От: mpn_arv  
Дата: 09.03.05 07:34
Оценка:
Здравствуйте, kgu87, Вы писали:

K>
K>var F : TextFile;
K>    S, s1, s2, delim : String;
K>    f1, f2 : TStringList;
K>    i, iPos : Integer;
K>begin
K>  f1 := TStringList.Create;
K>  f2 := TStringList.Create;
K>  delim := ' ';
K>  AssignFile(F, cFileName);
K>  Reset(F);
K>  try 
K>    Readln(F, S);
K>    while (S <> '') do
K>    begin
K>      iPos := Pos(delim, S);
K>      if Pos(delim, S) > 0 then   
K>      begin
K>        s1 := Copy(S, 0, iPos);
K>        s2 := Copy(S, iPos+1, Length(S));
K>        f1.Add(s1);
K>        f2.Add(s2);
K>      end;
K>      Readln(F, S);
K>    end;
K>    f1.SaveToFile(cFile1);
K>    f2.SaveToFile(cFile2);
K>  finally
K>    CloseFile(F);
K>    f1.Free;
K>    f2.Free;
K>   end;
K>end;
K>


Может проще так:
var
    f, f1, f2: Text;
    v1, v2: double;
    ...
    
    AssignFile(f, '...');
    AssignFile(f1, '...');
    AssignFile(f2, '...');
    Reset(f);
    ReWrite(f1);
    ReWrite(f2);
    while not eof(f) do
    begin
        readln(f, v1, v2);
        writeln(f1, v1);
        writeln(f2, v2);
    end;
    CloseFile(f);
    CloseFile(f1);
    CloseFile(f2);
... << RSDN@Home 1.1.4 beta 2 >>
Re[2]: CommaText
От: wildwind Россия  
Дата: 09.03.05 07:36
Оценка: 1 (1)
Здравствуйте, kgu87, Вы писали:

K>Извините за встречный вопрос, но почему нельзя просто читать файл без TStringList? Что-то вроде:


Или еще проще (действительно без TStringList ):

var inFile, outFile1, outFile2 : TextFile;
    number1, number2: double;
begin
  AssignFile(inFile, cFileName); 
  AssignFile(outFile1, cFileName1);
  AssignFile(outFile2, cFileName2);
  Reset(inFile); Rewrite(outFile1); Rewrite(outFile2);
  try 
    while not EOF(inFile)) do begin
      ReadLn(inFile, number1, number2);
      WriteLn(outFile1, number1); WriteLn(outFile2, number2);
    end;
  finally
    CloseFile(inFile); CloseFile(outFile1); CloseFile(outFile2);
  end;
end;
Re[3]: CommaText
От: mpn_arv  
Дата: 09.03.05 07:58
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, kgu87, Вы писали:


K>>Извините за встречный вопрос, но почему нельзя просто читать файл без TStringList? Что-то вроде:


W>Или еще проще (действительно без TStringList ):


W>
W>var inFile, outFile1, outFile2 : TextFile;
W>    number1, number2: double;
W>begin
W>  AssignFile(inFile, cFileName); 
W>  AssignFile(outFile1, cFileName1);
W>  AssignFile(outFile2, cFileName2);
W>  Reset(inFile); Rewrite(outFile1); Rewrite(outFile2);
W>  try 
W>    while not EOF(inFile)) do begin
W>      ReadLn(inFile, number1, number2);
W>      WriteLn(outFile1, number1); WriteLn(outFile2, number2);
W>    end;
W>  finally
W>    CloseFile(inFile); CloseFile(outFile1); CloseFile(outFile2);
W>  end;
W>end;
W>


8) Почти синхронно
... << RSDN@Home 1.1.4 beta 2 >>
Re[3]: CommaText
От: kgu87  
Дата: 09.03.05 10:58
Оценка:
Здравствуйте, mpn_arv, Вы писали:


_>Может проще так:

_>[pascal]

Намного. 5!
Re: CommaText
От: MLT  
Дата: 09.03.05 20:48
Оценка:
Спасибо всем огромное)))))) файл разделился, но всёже как правильно задавать CommaText?
... << RSDN@Home 1.1.3 stable >>
Re[2]: CommaText
От: wildwind Россия  
Дата: 10.03.05 07:24
Оценка:
Здравствуйте, MLT, Вы писали:

MLT>всёже как правильно задавать CommaText?


В смысле? Какое место в хелпе непонятно?
Re[3]: CommaText
От: MLT  
Дата: 10.03.05 15:57
Оценка:
Здравствуйте, wildwind, Вы писали:

W> В смысле? Какое место в хелпе непонятно?


Ну вот к примеру, я задаю f.CommaText:=' ',a1,' ',a2;
Вот с пунктуацией я то и не понял. Строка должна состоять из пробел число пробел число.
... << RSDN@Home 1.1.3 stable >>
Re[4]: CommaText
От: wildwind Россия  
Дата: 10.03.05 16:10
Оценка:
Здравствуйте, MLT, Вы писали:

MLT>f.CommaText:=' ',a1,' ',a2;

Это что??? Это у тебя компилится?

MLT>Вот с пунктуацией я то и не понял. Строка должна состоять из пробел число пробел число.

Ты все про свою задачу? CommaText тут никаким местом...
А если вообще, то почитай справку.
Re[5]: CommaText
От: MLT  
Дата: 10.03.05 17:27
Оценка:
Здравствуйте, wildwind,

Ага всё про свою))) Ладно забью на неё. Большое спасибо. Я не программист. Просто этот файл, запись некого реального процесса. И чтобы дальше строить разные зависимости необходимо было их разделить.
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.