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

Найти в файле строки, начинающиеся на "А"

03.06.2009, 12:32. Просмотров 32084. Ответов 5
Метки нет (Все метки)

Формирую файл, записью в него из Memo, затем необходимо найти строки начинающиеся на "А" и вывести их в Edit'е. Код приведен ниже.
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
procedure TForm1.Button1Click(Sender: TObject);
var
f,g: TextFile;
i: integer;
begin
AssignFile(g,'G.txt');
Rewrite(g);
AssignFile(f,'F.txt');
Rewrite(f);
for i:=0 to Memo1.Lines.Count do
writeln(f, Memo1.Lines[i]);
CloseFile(f);
showMessage('Данные записаны в файл');
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
f,g: TextFile;
s,t: string;
begin                     //ошибка в этом блоке
AssignFile(f,'F.txt');
Reset(f);
 
  AssignFile(g,'G.txt');
  Reset(g);
  while not (Eof(f)) do
  begin
  ReadLn(f,s);
  If s[1]='А' then WriteLn(g,s);
  end;
 
CloseFile(f);
CloseFile(g);
AssignFile(g,'G.txt');
ReadLn(g,t);
Edit1.Text:=t;
 
end;
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2009, 12:32
Ответы с готовыми решениями:

В стек Stek2 поместить все строки из Stek1, начинающиеся на букву "z"
в стек Stek2 поместить все строки из Stek1, начинающиеся на букву "z" С...

Найти все слова, начинающиеся на букву "а"
Задано предложение-строка. Написать программу, которая находит и печатает...

В каждом слове текста замените "а" на букву "е", если "а" стоит на четном месте, и заменить букву "б" на сочетание "ак",
В каждом слове текста замените "а" на букву "е", если "а" стоит на четном...

Из слов "Работа", "крест", "тон" составить фразу "Кто не работает, тот не ест" и определить ее длину
Из слова "Работа","крест","тон" составить фразу:"Кто не работает, тот не ест" и...

На форме располагаются компоненты: редактор Edit; линейка ScrollBar; радионабор с опциями "Цветы", "Деревья", "Рыбы", "Звери"
Доброго времени суток, 2 курс 2 семестр, пришли, препод раздал задачи, сказал...

5
Phantom
Эксперт С++
3171 / 853 / 39
Регистрация: 29.12.2008
Сообщений: 952
03.06.2009, 22:12 2
В общем-то написано всё достаточно правильно, позволю себе лишь немного "причесать" код:
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
procedure TForm1.Button1Click(Sender: TObject);
var
f,g: TextFile;
i: integer;
begin
AssignFile(f,'F.txt');
Rewrite(f);
//!!!!    Не нужно тут работы с файлом g
//!!!!
for i:=0 to Memo1.Lines.Count do
writeln(f, Memo1.Lines[i]);
CloseFile(f);
 
//!!!! Кстати в предыдущем варианте, раз уж Вы работали с G.txt, нужно его закрыть было.
 
showMessage('Данные записаны в файл');
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
f,g: TextFile;
s,t: string;
begin
AssignFile(f,'F.txt');
Reset(f);
AssignFile(g,'G.txt');
Rewrite(g);                      //!!!!! Лучше так его открыть на запись.
  while not Eof(f) do
  begin
  ReadLn(f,s);
  If s[1]='A' then WriteLn(g,s);
  end;
CloseFile(f);
CloseFile(g);
AssignFile(g,'G.txt');
reset(g);
ReadLn(g,t);
Edit1.Text:=t;
end;
Вот так, несущественные исправления по сути, но так лучше, смотрите комментарии.
НО! Почему всё таки не работет? Отвечу - нужно учитывать пустые строки, которые могут появиться в файле "F.txt", тогда программа будет вылетать на строке
Delphi
1
If s[1]='A' then WriteLn(g,s);
Тогда пустая строка считается в переменную s и запрос к s[1] выбьет программу.
Чтобы всё работало, сначала удалите руками в файле F.txt все пустые строки, чтобы посмотреть что всё работает. Затем думайте над тем, как программно отследить появление пустых строк в файле.
0
MisterFlash
0 / 0 / 0
Регистрация: 03.06.2009
Сообщений: 3
04.06.2009, 01:27 3
не подскажете как вставить даные в StringGrid с файла?
0
Zabiyak
КотЪ
217 / 217 / 60
Регистрация: 26.05.2009
Сообщений: 688
14.05.2010, 02:42 4
Delphi
1
2
3
4
5
while not Eof(g) do begin
  ReadLn(g,s);
  inc(StgingGrid1.RowCount);
  StgingGrid1.Cells[StgingGrid1.RowCount-1,0]:= s;
end;


Код записывает все строки из конечного файла в таблицу (изначально на форме у неё - 1 строка заголовка и один нефиксированный столбец)
0
Lesovick777
0 / 0 / 0
Регистрация: 23.12.2010
Сообщений: 1
26.12.2010, 18:28 5
ребят у меня курсовик морской бой, как организовать сохранения игры или хотябы сохранения результатов, спасибо заранее.
0
tyumencev2004
1 / 1 / 2
Регистрация: 06.05.2014
Сообщений: 17
12.05.2014, 17:13 6
Цитата Сообщение от Lesovick777 Посмотреть сообщение
ребят у меня курсовик морской бой, как организовать сохранения игры или хотябы сохранения результатов, спасибо заранее.
InI файл возьмите к примеру 0_0 такого не знать 0_0
0
12.05.2014, 17:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2014, 17:13

Сформируйте новый файл t2, который будет содержать те строки файла t1, которые начинаются с буквы "а" и заканчиваются буквой "я"
Задание 4. Задан текстовый файл t1. Сформируйте новый файл t2, который будет...

Тысячные числа исправлять к примеру с "1200" на "1 200", "12000" на "12 000" и т.д
Собственно числа исправлять к примеру с "1200" на "1 200", "12000" на "12 000",...

Строки, найти количество слов, заканчивающихся на букву "я"
Составить программу: Дана строка символов, разделенная пробелам, найти кол-во...


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

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

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