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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2009, 00:46   #1
SVadiks
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 20
Сообщение Поиск в файле

Ребят, поскажите пожалуйста в чем ошибка у меня?....
Смысл в чем: в два Edita вводится значение цены от и до которой будет производится поиск... и если же значение есть то заносим его в таблицу. если нет то переходим к следующиму.
Код:
procedure TForm4.Button1Click(Sender: TObject);
var
  i1,j1,j,cen:integer;
  f: text;
  s0,s1,s2,s3,s4: string;
    i: byte;
  S: String;
  Flag: Boolean;
begin            
if (Edit1.Text='') or (Edit1.Text=' ') then ShowMessage('Заполните все поля!')
  else   if (Edit2.Text=' ') or (Edit2.Text='') then ShowMessage('Заполните все поля!')
    else
i1:=strtoint(Edit1.Text);   // От которой цены будет делать поиск
j1:=StrToInt(Edit2.Text);   // До этой цены будет делаться поиск
assignfile(f,'1.txt');           //работа с файлом
  reset(f);
  i:=0;   j:=0;
  while not eof(f)do
  begin
  readln(f,s0);
  s1:=copy(s0,1,pos(chr(9),s0)-1); delete(s0,1,pos(chr(9),s0));
  s2:=copy(s0,1,pos(chr(9),s0)-1); delete(s0,1,pos(chr(9),s0));
  cen:=StrToInt(s2);
  s3:=copy(s0,1,pos(chr(9),s0)-1); delete(s0,1,pos(chr(9),s0));
  s4:=s0;
  if (i1<=cen) and (j1>=cen) then   begin       // Идет сравнение в введенного диапозона
              Flag := True;
            i:=i+1; j:=j+1;
      Form1.Grid.Cells[0,i]:=IntToStr(j);// Дальше идет добавление и запись в таблицу данных значений
  s1:=copy(s0,1,pos(chr(9),s0)-1); delete(s0,1,pos(chr(9),s0));
  Form1.grid.Cells[1,i]:=s1;
  s2:=copy(s0,1,pos(chr(9),s0)-1); delete(s0,1,pos(chr(9),s0));
  Form1.Grid.Cells[2,i]:=s2;
  s3:=copy(s0,1,pos(chr(9),s0)-1); delete(s0,1,pos(chr(9),s0));
  Form1.Grid.Cells[3,i]:=s3;
  s4:=s0;
  Form1.Grid.Cells[4,i]:=s4;
  Form1.Grid.RowCount:=i+1;   end;
  end;
  closefile(f);   close;
end;
Вот сам код вроде условие срабатывае но заполнение происходит не коррекно (показанно на рис). Хотя он должен все поля заполнять нормально.
Изображения
Тип файла: jpg Безымянный.JPG (21.0 Кб, 123 просмотров)
SVadiks вне форума Ответить с цитированием
Старый 13.12.2009, 04:36   #2
Nowar
Пользователь
 
Регистрация: 13.12.2009
Сообщений: 23
По умолчанию

Может быть, дело в том, что после проверки на выполнения условий для цены снова производятся операции чтения и удаления данных из строки s0, но строка при этом не считывается заново?
Т.е. считали строку s0 из файла, распарсили её (и при этом удалили всё нафиг), а потом опять пытаемся парсить s0 перед добавлением данных, но в строке-то этой уже ничего нет, всё удалили...
Nowar вне форума Ответить с цитированием
Старый 13.12.2009, 21:46   #3
SVadiks
Пользователь
 
Регистрация: 21.10.2009
Сообщений: 20
По умолчанию

ага, спасибо... все попрправил работатет теперь
SVadiks вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в файле mrhankey Общие вопросы C/C++ 0 30.11.2009 20:15
Поиск в файле Cdevelop Общие вопросы C/C++ 5 16.03.2009 19:49
Поиск в файле Zandrey Microsoft Office Excel 8 05.09.2008 12:23
поиск в файле Elm0 Паскаль, Turbo Pascal, PascalABC.NET 14 07.06.2008 22:41
Поиск в файле lin Помощь студентам 3 25.05.2007 08:40