IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Re: Задачка для ПАСКАЛЯНТОВ!
сообщение
Сообщение #1


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Примерно так
Код
PROGRAM FindTown;
var input:text;
     s,Find:string;
begin
 assign(input,'c:bpworkinput.txt');
 reset(input);
 ReadLn(Find);
 While not EOF(input) do
   begin
    ReadLn(input,s);
    if pos(Find,s)<>0 then {Если нужно не любое совпадение, а именно с начала, то кажется =1}
       WriteLn(s)
   end;
 close(input)
end.


Сообщение отредактировано: volvo -


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 10

Репутация: -  0  +


Код

Uses Crt;
LABEL 1;
Var
     FileTown,FileSumm:text;
     ch:char;
     i,Summ:longint;
     Town,s:string;
     Summ1:array [1..10] of longint;
     Town1:array [1..10] of string;
Begin
1:      ClrScr;
     Assign(FileTown,'town.dat');
     Reset(FileTown);
     Write('Введите город => ');
     Readln(Town);
     While ((not EOF(FileTown))and(pos(Town,s)<>1)) do begin
     Readln(FileTown,s);
     If pos(Town,s)<>0 then begin
     end;end;
     Close(FileTown);
     Assign(FileTown,'town.dat');
     Reset(FileTown);
     Assign(FileSumm,'summ.dat');
     Reset(FileSumm);
     For i:=1 To 10 Do Begin
     Readln(FileTown,Town1[i]);
     Readln(FileSumm,Summ1[i]);
     if s=Town1[i] then begin
     Write(Town1[i],' => ');
     Writeln(Summ1[i]);
     Write('Введите новую сумму => ');
     Readln(Summ1[i]);
     end;end;
     Close(FileSumm);
     Close(FileTown);
     Assign(FileSumm,'summ.dat');
     Rewrite(FileSumm);
     For i:=1 To 10 Do Begin
     Writeln(FileSumm,Summ1[i]);
     end;
     Close(FileSumm);
     Write('Нажмите <Enter>');
     repeat
     ch:=ReadKey;if ch=chr(13) then begin Goto 1;end;
     if ch=chr(27) then until ch=chr(27);
End.

Вот прога, которая практически выполняет эту задачу, но слишком она и сама сложная. Поиск с файла "города", запись городов с этого же файла в массив, так же и суммы. Работа через массив. Когда то очень давно, лет так 6 назад. Я делал эту задачу при помощи функции Seek (var имя_файла;номер_компоненты:LongInt) - передвигает текущую позицию файла в заданную компоненту. Причем поиск "города" из файла и считывания суммы пренадлежащей заданному городу искались с помощью этой функции. А вот, как это сделать с головы вылетело, годы...  Ведь функция Seek не работает с текстовыми файлами.
И ещё, готовые результаты новых сумм записывались не заново, т.е. не командой Rewrite, а командой Append. Хотя функция Append используется только в текстовых файлах, а Seek нет. Что очень странно! Может процедуру надо написать.  Короче, кто знает как это сделать, прошу откликнуться. А вот использовался массив или нет не помню, но одно точно знаю в файле с городами, было около 10000 городов. Выдержал ли бы массив такого или нет?
                                                           ???
Я наверное уже достал всех своей проблемой, но больше ни кто не поможет!
Заранее благодарен,
Алексей.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
trminator   Re: Задачка для ПАСКАЛЯНТОВ!   25.11.2002 22:41
Elected   Задачка для ПАСКАЛЯНТОВ!   9.10.2003 10:21
Elected   Задачка для ПАСКАЛЯНТОВ!   9.10.2003 11:26
Elected   Задачка для ПАСКАЛЯНТОВ!   9.10.2003 12:35
Elected   Задачка для ПАСКАЛЯНТОВ!   10.10.2003 12:09
Nightmare   Re: Re: Задачка для ПАСКАЛЯНТОВ!   10.10.2003 18:13
Fire_Rage   Re: Re: Задачка для ПАСКАЛЯНТОВ!   11.10.2003 7:33
Elected   Задачка для ПАСКАЛЯНТОВ!   13.10.2003 9:28
AlaRic   Re: Re: Задачка для ПАСКАЛЯНТОВ!   13.10.2003 13:23
Elected   Задачка для ПАСКАЛЯНТОВ!   13.10.2003 15:19
Elected   Сложная задачка для ПАСКАЛЯНТОВ!   14.10.2003 11:50
AlaRic   Re: Re: Задачка для ПАСКАЛЯНТОВ!   14.10.2003 15:59
Elected   Твоё желание для нас - закон!   14.10.2003 16:43
Elected   Сложная задачка для ПАСКАЛЯНТОВ!   14.10.2003 16:48
Fire_Rage   Re: Задачка для ПАСКАЛЯНТОВ!   15.10.2003 8:18
Elected   Задачка для ПАСКАЛЯНТОВ!   15.10.2003 11:45
Fire_Rage   Re: Re: Задачка для ПАСКАЛЯНТОВ!   16.10.2003 7:24
Gremlin   Re: Задачка для ПАСКАЛЯНТОВ!   16.10.2003 11:52
Fire_Rage   Re: Re: Задачка для ПАСКАЛЯНТОВ!   18.10.2003 7:31


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.09.2025 0:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name