Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2009, 10:48   #1
pautina
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 32
По умолчанию Вывод временных меток и цифр из файла

Здравствуйте Уважаемое сообщество.
Ни могли бы Вы помочь с таким вопросом.
У меня есть текстовый файл logfile.txt http://files.mail.ru/KMVYFB
Мне нужно вывести из этого файла все временные метки и цыфры, и найденные значения передать в текстовый файл.
Использую такой код
Код:
procedure TForm1.Button1Click(Sender: TObject);
var SourceST,DestST:TStringList;
    i:integer;
    s:string;
    // s1:string;
begin
 SourceST:=TStringList.Create;
 DestST:=TStringList.Create;
 if form1.OpenDialog1.Execute then SourceST.LoadFromFile(form1.OpenDialog1.FileName);
 for i:=0 to SourceST.Count-1 do
 begin
  s:=Copy(SourceST[i],Length(SourceST[i])-6,7);
  // s1:=Copy(SourceST[i],Length(SourceST[i])-60,10);
  try
    strtotime(s);
   //strtofloat(s1);
   DestST.Add(SourceST[i]);
  except
  end;
 end;
 DestST.SaveToFile('112.txt'); //   DestST.SaveToFile('112.xls');
 SourceST.Free;
 DestST.Free;
end;
С выводом временных меток всё нормально, А вот как вывести цыфры, Как изменить код?
Использовал strtofloat(s1); s1:=Copy(SourceST[i],Length(SourceST[i])-60,10); они закоментарены в коде, но цыфры не выводились почему

Последний раз редактировалось pautina; 24.01.2009 в 19:53.
pautina вне форума Ответить с цитированием
Старый 24.01.2009, 22:02   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Во первых, кому вы передаете результат функции?
[имя_переменной_куда_нужо_записывать]=strtofloat(s1);

Код:
procedure TForm1.Button1Click(Sender: TObject);
var SourceST,DestST:TStringList;
    i:integer;
    s:string;
    s1:string;
begin
 SourceST:=TStringList.Create;
 DestST:=TStringList.Create;
 if form1.OpenDialog1.Execute then SourceST.LoadFromFile(form1.OpenDialog1.FileName);
 for i:=0 to SourceST.Count-1 do
 begin
  s:=Copy(SourceST[i],Length(SourceST[i])-6,7);
  s1:=Copy(SourceST[i],Length(SourceST[i])-60,10);
  try
    strtotime(s);
   DestST.Add(strtofloat(s1)+' '+SourceST[i]);
  except
  end;
 end;
 DestST.SaveToFile('112.txt'); //   DestST.SaveToFile('112.xls');
 SourceST.Free;
 DestST.Free;
end;
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг

Последний раз редактировалось Dj_smart; 24.01.2009 в 22:05.
Dj_smart вне форума Ответить с цитированием
Старый 25.01.2009, 10:40   #3
pautina
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 32
По умолчанию

почему программа ругается на эту строку
Код:
 DestST.Add(strtofloat(s1)+' '+SourceST[i]);
Программа указывает что несоответствие типов

Последний раз редактировалось pautina; 25.01.2009 в 12:41.
pautina вне форума Ответить с цитированием
Старый 25.01.2009, 12:40   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

strtofloat(s1) - это преобразование строки в число (с десятичной точкой в даном случае), а в StringList нельзя добавлять числа .... только строки
http://www.delphibasics.ru/StrToFloat.php
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 25.01.2009, 12:45   #5
pautina
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 32
По умолчанию

Вывести временные метки и цыфры получилось, с метками все нормально, а вот цыфры выводятся не все, использовал такой код
Код:
procedure TForm1.Button1Click(Sender: TObject);

var SourceST,DestST:TStringList;
    i:integer;
    s:string;
    s1:string;
    s2:extended;
begin
 SourceST:=TStringList.Create;
 DestST:=TStringList.Create;
 if form1.OpenDialog1.Execute then SourceST.LoadFromFile(form1.OpenDialog1.FileName);
 for i:=0 to SourceST.Count-1 do
 begin
  s:=Copy(SourceST[i],Length(SourceST[i])-6,7);
  s1:=Copy(SourceST[i],Length(SourceST[i])-20,11);
  try
    s2:=strtofloat(s1);
    DestST.Add(floattostr(s2)); // Вывод чисел
  except
  end;
  try
    strtotime(s);
    DestST.Add(SourceST[i]);   // Вывод временных меток
  except
  end;

 end;
 DestST.SaveToFile('112.txt'); //   DestST.SaveToFile('112.xls');
 SourceST.Free;
 DestST.Free;
end;
Какие значения использовать в строке
Код:
s1:=Copy(SourceST[i],Length(SourceST[i])-20,11);
чтобы выводились все цыфры.
Файл из которого нужно выводить временые метки и цыфры приведён здесь.
http://files.mail.ru/KMVYFB
Почему выводятся не все цыфры, что в коде ни так, может новый подход какой использовать.

Последний раз редактировалось pautina; 25.01.2009 в 18:51.
pautina вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Натуральное число, в записи которого п цифр, называется числом Армстронга, если сумма его цифр, возведенн OTLi4HO Общие вопросы C/C++ 6 14.01.2009 19:48
вывод из файла!!! Exclucive Общие вопросы C/C++ 2 24.05.2008 20:42
Вывод чисел, делящихся на каждую из своих цифр. Паскаль ЯншинаВера Помощь студентам 3 08.04.2008 11:50
Вопрос по организации поиска и расстановки меток Melifaro Компоненты Delphi 4 01.11.2007 09:53
вывод файла на экран! Шушелла Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 29.10.2007 09:34