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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2008, 17:04   #1
GazimagomedovM
Пользователь
 
Аватар для GazimagomedovM
 
Регистрация: 05.11.2007
Сообщений: 20
По умолчанию Работа с текстовым файлом

Здравствуйте. Помогите пожалуйста новичку. У меня есть текстовый файл, в котором нужно найти значение в правом втором столбце от знака "I" (поиск будет осуществляться по левому столбцу от знака "I"),
примерное содержание файла:
I3902901 I980I 2 117 737.00I I I
I39026010 I980I 21.50I I I
I39024012 I980I 179 604.63I I 1 678.00I
I3902001202 I840I 407.66I I I
I3902103 I980I 408 809.00I I I
I39027031 I980I 259 403.39I I 12 969.80I
I3902303102 I840I 999.80I I 3.49I
I39022100400055I980I 45 750 000.00I I I
I39021100400313I840I 222 736.60I I I
I39020100400314I840I 53 263.10I I I
I39029100400315I840I 242 105.00I I I
I39028100400316I840I 716 630.80I I I
I39027100400317I840I 48 421.00I I I
I39026100400318I840I 1 646 314.00I I I
I39025100400319I978I 9 200.96I I 5.45I
I39025100400320I978I 15 334.93I I 9.09I
I39023100400322I978I 181 718.92I I 107.67I
I39022100400323I978I 153 349.30I I 90.86I
I39021100400324I978I 682 404.39I I 404.32I
I39027100400726I643I 207.17I I 1.24I
I39029084034 I840I 33 265.18I I I


Конкретно из приведённого куска файла нужно найти к примеру числовые значения "39025100400319" и взять из этой строчки значение "9 200.96"
Пожалуйста помогите. Заранее спасибо.
GazimagomedovM вне форума Ответить с цитированием
Старый 16.07.2008, 17:44   #2
А. Долматов
Форумчанин
 
Аватар для А. Долматов
 
Регистрация: 15.02.2007
Сообщений: 183
По умолчанию

это не сложно:
1) формируем число, которое будем сравнивать с поисковым
slovo:=edit1.text;
rezultnomer:='';
while not eof(f)do
begin
tecstoka:=readln(s)
i:=2;
while s[i]<>'I' do
begin
slovopoisk:=s[i];
i:=i+1;
end;
2)сравниваем это число с поисковым
if slovopoisk=slovo then
begin
i:=i+1;
while s[i]<>'I' do
begin
rezultnomer:=s[i];
i:=i+1;
end;
end;
end;
3) выводим получившийся результат
edit2.text:=rezltnomer;

P.S. код писал из головы, не проверял, но смысл ты, думаю, уловить сможешь.
Знать все невозможно, в силу того, что жить бы стало неинтересно.
А. Долматов вне форума Ответить с цитированием
Старый 16.07.2008, 19:30   #3
GazimagomedovM
Пользователь
 
Аватар для GazimagomedovM
 
Регистрация: 05.11.2007
Сообщений: 20
По умолчанию

я извиняюсь, посмотрите пожалуйста этот код:
begin
ReadLn(f,s);
while not eof(f) do
begin
readln(f,s);
n:=n+1;

s1[n]:=copy(s,1,(pos('I',s)-1));
s2[n]:=copy(s,20,(pos('I',s)-1));
// while(pos(' ',s) = 1) and(length(s) > 0) do delete (s,1,1);

end;

schet:=0;
for i:=1 to n do
if pos('39025100400319',s1[i])>0 then
// schet:=schet+strtofloat(s2[i]);
Edit14.text:=floattostr(schet);
end;
GazimagomedovM вне форума Ответить с цитированием
Старый 16.07.2008, 19:31   #4
GazimagomedovM
Пользователь
 
Аватар для GazimagomedovM
 
Регистрация: 05.11.2007
Сообщений: 20
По умолчанию

почему -то выводит мне "0" хотя это значение есть.
GazimagomedovM вне форума Ответить с цитированием
Старый 16.07.2008, 19:36   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Сплошной сумбур. Возьмите за основу предложенный код. На вскидку должен работать.
puporev вне форума Ответить с цитированием
Старый 16.07.2008, 19:43   #6
GazimagomedovM
Пользователь
 
Аватар для GazimagomedovM
 
Регистрация: 05.11.2007
Сообщений: 20
По умолчанию

спасибо большое
GazimagomedovM вне форума Ответить с цитированием
Старый 16.07.2008, 19:46   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
begin
ReadLn(f,s);
while not eof(f) do
Здесь вместо ReadLn(f,s); нужно assignfile(f,'имя файла.txt');
puporev вне форума Ответить с цитированием
Старый 16.07.2008, 19:49   #8
GazimagomedovM
Пользователь
 
Аватар для GazimagomedovM
 
Регистрация: 05.11.2007
Сообщений: 20
По умолчанию

Я извеняюсь, только текст содержит много пробелов и всяких других символов. вот его содержание.
Вложения
Тип файла: txt Prim.txt (2.2 Кб, 144 просмотров)
GazimagomedovM вне форума Ответить с цитированием
Старый 16.07.2008, 20:58   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
(I)39025100400319(I)978(I) 9 200.96(I)
Здесь первый символ I, а всего их 4. Проверяем по первой колонке, а выводим третью. Я правильно понял?
Если да, то вот код.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s,poisk1,poisk2:string;//строка, слово(число) которое ищем и слово, с которым сравниваем
f:textfile;
i:integer;
begin
poisk1:=edit1.text;
assignfile(f,'Prim.txt');
reset(f);
while not eof(f)do
  begin
    readln(f,s); //считывем очередную строку
    if s[1]='I' then //если она начинается на I
       begin
         for i:=length(s) downto 1 do
         if s[i]=' 'then delete(s,i,1);//удаляем все пробелы в строке
         delete(s,1,1); //удаляем первую I
         poisk2:=copy(s,1,pos('I',s)-1);//выбираем текст со второй позиции до следующего I-1
         if poisk2=poisk1 then//если совпадает с заданным
            begin
              delete(s,1,pos('I',s));//удаляем до второго I
              delete(s,1,pos('I',s));//удаляем до третьего I (вторую колонку)
              edit2.Text:=copy(s,1,pos('I',s)-1);//записываем значение из третьей колонки
              exit;
            end;
       end;
   end;
closefile(f);
end;
end.

Последний раз редактировалось puporev; 16.07.2008 в 22:55.
puporev вне форума Ответить с цитированием
Старый 16.07.2008, 22:57   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Для автора темы. Внес пару изменений в код, сейчас нормально работает, надо бы дописать когда нужного слова(числа) нет.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовым файлом Vasya Помощь студентам 28 24.01.2008 01:15
Работа с текстовым файлом (delphi). Помогите доделать программу. Snord Помощь студентам 1 14.12.2007 14:10
Работа с текстовым файлом nataly_ukr БД в Delphi 23 07.12.2007 22:13
Работа с текстовым файлом! Edimus Общие вопросы C/C++ 10 19.11.2007 10:31
Модуль, работа с текстовым файлом Soul Паскаль, Turbo Pascal, PascalABC.NET 1 21.05.2007 20:30