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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2009, 11:00   #21
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Ну тогда и используйте код в посте 17, как нашли эту строку вышли из цикла что бы лишнего не лопатить
SERG1980 вне форума Ответить с цитированием
Старый 26.10.2009, 11:44   #22
Jantar
Пользователь
 
Аватар для Jantar
 
Регистрация: 19.02.2009
Сообщений: 63
По умолчанию

Блин, совсем запутался Виснет приложение и все
SERG1980, скажите, пожалуйста как вместе связать коды:

Код:
SL:=TSTringList.Create;
SL.LoadFromFile('c:\2.txt');
SL.Text := UTF8ToAnsi(SL.Text);
for i:=0 to SL.Count-1 do
if Pos('Заработано',SL[i])<>0 then 
begin
 s:=SL[i];
 exit;
end;
и

Код:
Zarabotok := 0;
p1 := Pos('Заработано:',s);
p2 := Pos('рублей',s);
if p1>0 then begin
sTemp := Trim(Copy(s, p1+Length('Заработано'), p2-p1-Length('Заработано:')));
// теперь в sTemp строка начинающая с цифр...

Zarabotok := StrToInt(StringReplace(sTemp,' ','',[rfReplaceAll]));
end;
Буду благодарен, да... Еще не хочет "i" принимать как string. А как integer идет

Мне только лишь это непонятным осталось...

Последний раз редактировалось Jantar; 26.10.2009 в 11:47.
Jantar вне форума Ответить с цитированием
Старый 26.10.2009, 11:53   #23
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
  SL := TSTringList.Create;
  SL.LoadFromFile('c:\2.txt');
  s := UTF8ToAnsi(SL.Text);
  Zarabotok := 0;
  p1 := Pos('Заработано:', s);
  p2 := Pos('рублей', s);
  if (p1 > 0) and (p2>p1) then begin
    sTemp := Trim(Copy(s, p1 + Length('Заработано'), p2 - p1 - Length('Заработано:')));
// теперь в sTemp строка начинающая с цифр...

    Zarabotok := StrToInt(StringReplace(sTemp, ' ', '', [rfReplaceAll]));
  end;
  // и не забываем очистить TStringList!!!
  FreeAndNil(SL);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2009, 12:02   #24
Jantar
Пользователь
 
Аватар для Jantar
 
Регистрация: 19.02.2009
Сообщений: 63
По умолчанию

класс eConvertError with massage is not a valid integer value...
Jantar вне форума Ответить с цитированием
Старый 26.10.2009, 13:18   #25
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Означает, что у Вас между заработано и рублей не число!

как минимум вижу ошибку вот тут:
sTemp := Trim(Copy(s, p1 + Length('Заработано:'), p2 - p1 - Length('Заработано:')));

не помогло?!
ну так пройдитесь в отладке!!!
Посмотрите, сначала что попадает в s
потом, чему равна sTemp
(p.s. если не знаете что такое отладка,
то киньте на форму Memo и банально загоните текст в мемо, там всё увидите!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2009, 13:18   #26
Jantar
Пользователь
 
Аватар для Jantar
 
Регистрация: 19.02.2009
Сообщений: 63
По умолчанию

Ладно, всем огромное спаибо и низкий поклон за помощь.

Сам разберусь, дабы не садиться Вам на шеи. Еще раз огромное спасибо за помощь!

А код Zarabotok := 0;
p1 := Pos('Заработано:',s);
p2 := Pos('рублей',s);
if p1>0 then begin
sTemp := Trim(Copy(s, p1+Length('Заработано'), p2-p1-Length('Заработано:')));
// теперь в sTemp строка начинающая с цифр...

Zarabotok := StrToInt(StringReplace(sTemp,' ','',[rfReplaceAll]));
end;

правильный. Где-то ошибка в первой части кода
Jantar вне форума Ответить с цитированием
Старый 26.10.2009, 13:33   #27
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var SL:TStringList;
    i:integer;
    s,zarabotok:string;
begin
 zarabotok:='';
 SL:=TSTringList.Create;
 SL.LoadFromFile('c:\2.txt');
 SL.Text := UTF8ToAnsi(SL.Text);
 for i:=0 to SL.Count-1 do
 if Pos('Заработано',SL[i])<>0 then
 begin
  s:=SL[i];
  break;
 end;
 for i:=1 to length(s) do
 if s[i] in['0'..'9'] then zarabotok:=zarabotok+s[i];
 showmessage(zarabotok+' рублей');
 SL.Free;
end;
только здесь переменная zarabotok типа string если что переведите её с помощью ф-ии strtoint(zarabotok);
SERG1980 вне форума Ответить с цитированием
Старый 26.10.2009, 14:47   #28
Jantar
Пользователь
 
Аватар для Jantar
 
Регистрация: 19.02.2009
Сообщений: 63
По умолчанию

Огромное спасибо, уважаемые. Все получилось!

Чтобы я без Вас всех делал!!!
Jantar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считывание с текстового файла ciaonataha Помощь студентам 0 20.04.2009 12:09
Шифрование текстового файла pomoshnic Паскаль, Turbo Pascal, PascalABC.NET 5 14.02.2009 18:21
Мониторинг текстового файла zander Microsoft Office Excel 20 14.02.2009 01:34
Ввод из текстового файла bygoga Паскаль, Turbo Pascal, PascalABC.NET 14 23.11.2008 13:37
Открытие текстового файла Victor Microsoft Office Excel 2 16.01.2008 03:42