Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с текстовым файлом [D7, XP]


susergey ©   (2006-08-05 17:45:00) 

Мастера, помогите разобраться.
на форме есть поле Edit  в него нелбходимо вводить цифры для поиска в текстовом файле. Я создал переменную и присвоил ей значение Edit.Text. Отрываю файл для поиска, сравниваю переменную из него с созданной, но  поиск не выполняется.


Германн   (2006-08-06 01:01:00) [1]


> GeLLeR ©   (06.08.06 00:50) [11]
>
>
> > У тебя ошибка в коде.
>
> В многострадальной 17-ой строке???
>

Нет у него ошибки "в 17-ой строке". Есть полное непонимание что, чего, когда, куда, зачем и т.д. и т.п.


GeLLeR   (2006-08-06 00:50:00) [2]


> У тебя ошибка в коде.

В многострадальной 17-ой строке???


Anatoly Podgoretsky   (2006-08-05 18:51:00) [3]

Типов переменных мы никогда не узнаем?


Zeqfreed   (2006-08-05 18:45:00) [4]

> [9] susergey   (05.08.06 18:30)

Если удалить пробелы, то ничего не изменится. Я же сказал, что при выполнении этого кода в DistrNumber окажется вся строка. Тебе необходимо её будет проанализировать и выбрать нужное значение. Или, если это число имеет фиксированное кол-во знаков, то можно его просто считать.


susergey   (2006-08-05 18:30:00) [5]

Я кажется понял, в чем ошибка
 2876    BaseName                3       26.04.0000   РТ-Софт

В начале строки есть пробелы, если их удалить, то может он заработает.


Zeqfreed   (2006-08-05 18:26:00) [6]

> [6] susergey   (05.08.06 18:23)

Я вижу что файл текстовый. Только это его тип. Я спрашиваю о том как данные записаны в этом файле и что ты ожидаешь получить выполняя данный код.


susergey   (2006-08-05 18:23:00) [7]

Да-к дело в том, что изначально было Read, файл текстовый.


Zeqfreed   (2006-08-05 18:21:00) [8]

> [4] susergey   (05.08.06 18:14)

Правильно. Надо не делать, а думать и только потом делать :) Каков формат файла?


susergey   (2006-08-05 18:14:00) [9]

Сделал вместо
Readln(f, DistrNumber, VariantSystem, DistrType, Network, UsHost,
         RegToEnd, Status, DataOfReg, Client);

Read (f, DistrNumber, VariantSystem, DistrType, Network, UsHost,
         RegToEnd, Status, DataOfReg, Client);
Результат тот же


Zeqfreed   (2006-08-05 18:09:00) [10]

   Readln(f, DistrNumber, VariantSystem, DistrType, Network, UsHost,
          RegToEnd, Status, DataOfReg, Client);


После этого у тебя DistrNumber содержит целиком первую строку файла, а остальные переменные остаются пустыми. Каков формат файла?


susergey   (2006-08-05 18:00:00) [11]

Вот код

procedure TForm1.BttnFindClick(Sender: TObject);
  var
   F: TextFile;
   Path: String;
   DistrNumber: String;
   Client: String;
   Network: String;
   RegToEnd: String;
   Status: String;
   VariantSystem: String;
   DistrType: String;
   DataOfReg: String;
   UsHost: String;
   fName: String;
   FindName: String;
   NDistr: String;

   begin
     Path := ExtractFilePath(ParamStr(0));
     if CmbBoxBase.Text = 'Проф' then
     FindName := Path + 'law.txt';
     AssignFile (F, FindName);
     fName := FindName;

   {$I-}
     Reset(f);
   {I+}
 
  if IOResult <> 0 then begin
    MessageDlg('Ошибка доступа к файлу '+ fName, mtError,[mbOk],0);
    Exit;
  end;

  while not EOF(f) do begin
    Readln(f, DistrNumber, VariantSystem, DistrType, Network, UsHost,
           RegToEnd, Status, DataOfReg, Client);
         NDistr := EdtNumDistr.Text;

    if (DistrNumber = NDistr)  then begin
    MemOutput.Lines.Add(DistrNumber);
    end
    else begin
     MemOutput.Lines.Add('not found');
       end;
  end;
  CloseFile(F);
end;


Zeqfreed   (2006-08-05 17:54:00) [12]

> [0] susergey   (05.08.06 17:45)

У тебя ошибка в коде.


Наверх

Титульная страница Поиск, карта сайта Написать письмо