Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Retributi0n
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 14
1

Как проверить на наличие в txt файле записи с использованием команды if

10.11.2019, 18:38. Просмотров 846. Ответов 10

Например в тхт файле написано следующее:
01

как правильно поставить условие функции if, чтобы проверить существует этот элемент или нет?

>Подкл файл
>Считали значение в файле (01)
read(x,y); // в файле x.txt считали y, равная 01

If ...... then // подскажите какое условие сюда стоит вписать
write('yes')
else
write('no');
end;
>закрыли файл
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2019, 18:38
Ответы с готовыми решениями:

10

Puporev
Модератор
57809 / 44042 / 30413
Регистрация: 18.05.2008
Сообщений: 105,303
10.11.2019, 19:15 2
Цитата Сообщение от Retributi0n Посмотреть сообщение
Например в тхт файле написано следующее:
01
Это не число, а строка, поэтому нужно искать строку '01'.
0
Retributi0n
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 14
10.11.2019, 19:27  [ТС] 3
Да, этот момент я увидел. Однако все равно выдает i/o 104
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
program cheker;
 
{$APPTYPE CONSOLE}
 uses 
SysUtils, Windows, Dialogs;
 
 
var
s: string;
x,y: integer; //perem
a,b: integer; //zna4enie
f1,f2,f3,f4: textfile;
 
begin
  AssignFile(f1,'input1.txt');
  AssignFile(f3,'input2.txt');
  AssignFile(f4,'temp.txt');
 
  Reset(f1);
  Reset(f3);
  Rewrite(f4);
 
 a:=0;
 b:=1;
                            //ïåðåïèñàëè â îäèí ôàéë
while not eof(f1) do begin
 
      read(f1, x);
      read(f3, y);
 
      if(x <> y) then
        write(f4,a)
      else
        write(f4,b);
 
 
end;
  closefile(f3);
  closeFile(f1);
  closeFile(f4);
               //äî ñèõ - çàïèñü, ïîòîì -ïðîâåðêà
 
  AssignFile(f2,'output.txt');
  AssignFile(f4,'temp.txt');
 
      read(f4,s);        --//--
         write(s);
 
 
         if s='00' then
         write('NO')
          else
             write('YES');
 
   closefile(f2);
   closefile(f4);
end.


Вот сам код. Тормозит на одном и том же моменте (обозначу --//--)
0
Puporev
Модератор
57809 / 44042 / 30413
Регистрация: 18.05.2008
Сообщений: 105,303
10.11.2019, 19:31 4
Delphi
1
2
3
4
5
var x:string;
...................
while not eof(f1) do
 begin
    readln(f1, x);
0
10.11.2019, 19:31
Retributi0n
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 14
10.11.2019, 20:06  [ТС] 5
изменил. Не пашет как надо.
Если числа в файлах равны - 1, если нет - 0
и так и так выводит 1 => yes
даже при разных значениях
0
Puporev
Модератор
57809 / 44042 / 30413
Регистрация: 18.05.2008
Сообщений: 105,303
10.11.2019, 20:19 6
Все-таки что у Вас в файлах, числа или строки, например 1 это может быть и строка и число а 01 только строка.
Цитата Сообщение от Retributi0n Посмотреть сообщение
и так и так выводит 1 => yes
даже при разных значениях
Этого не может быть если правильно написан код.
0
Retributi0n
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 14
10.11.2019, 20:22  [ТС] 7
upd: исправил,пашет как надо. выводит 1 или 0, но не выводит yes/no, крашится прога

p.s.
крашится прога на том моменте что указал
создал отдельную прогу, которая проверяет и выводит yes/no, так же крашится
0
Puporev
Модератор
57809 / 44042 / 30413
Регистрация: 18.05.2008
Сообщений: 105,303
10.11.2019, 20:24 8
Цитата Сообщение от Retributi0n Посмотреть сообщение
но не выводит yes/no, крашится прога
Приложите архив проекта этой программы со всеми файлами.
0
Retributi0n
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 14
10.11.2019, 20:27  [ТС] 9
вот
0
Вложения
Тип файла: rar Архив WinRAR.rar (857 байт, 3 просмотров)
Puporev
Модератор
57809 / 44042 / 30413
Регистрация: 18.05.2008
Сообщений: 105,303
10.11.2019, 20:35 10
А кто будет открывать файлы??
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
begin
  AssignFile(f2,'output.txt');
  AssignFile(f4,'temp.txt');
  reset(f4);
  rewrite(f2);
      readln(f4,s);
 
         if s='0' then
         write(f2,'NO')
         else
             write(f2,'YES');
 
   closefile(f2);
   closefile(f4);
end.
0
Retributi0n
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 14
10.11.2019, 20:39  [ТС] 11
finita la comedy...
кажется мне на сегодня хватит, спасибо
0
10.11.2019, 20:39
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2019, 20:39

Как выполнять команды, записанные в другом файле (к примеру в txt)?
В общем задача такая, нужно выполнить команду записанную в другом файле. К примеру, при выполнении...

Как проверить наличие записи в таблице БД MySql(по ID)
Всем доброго времени суток. Уважаемые программисты, у меня возник такой вопрос: Есть таблица в...

Как проверить наличие записи В ПОДЧИНЕННОЙ ФОРМЕ
привет всем ... Как проверить наличие записи В ПОДЧИНЕННОЙ ФОРМЕ с помощью Recordset.EOF ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.