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

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

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

> Re: Задачка для ПАСКАЛЯНТОВ!
trminator
сообщение 25.11.2002 18:41
Сообщение #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 - 17.12.2004 14:26


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Elected
сообщение 14.10.2003 7:50
Сообщение #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 18:41
Elected   Задачка для ПАСКАЛЯНТОВ!   9.10.2003 6:21
Elected   Задачка для ПАСКАЛЯНТОВ!   9.10.2003 7:26
Elected   Задачка для ПАСКАЛЯНТОВ!   9.10.2003 8:35
Elected   Задачка для ПАСКАЛЯНТОВ!   10.10.2003 8:09
Nightmare   Re: Re: Задачка для ПАСКАЛЯНТОВ!   10.10.2003 14:13
Fire_Rage   Re: Re: Задачка для ПАСКАЛЯНТОВ!   11.10.2003 3:33
Elected   Задачка для ПАСКАЛЯНТОВ!   13.10.2003 5:28
AlaRic   Re: Re: Задачка для ПАСКАЛЯНТОВ!   13.10.2003 9:23
Elected   Задачка для ПАСКАЛЯНТОВ!   13.10.2003 11:19
Elected   Сложная задачка для ПАСКАЛЯНТОВ!   14.10.2003 7:50
AlaRic   Re: Re: Задачка для ПАСКАЛЯНТОВ!   14.10.2003 11:59
Elected   Твоё желание для нас - закон!   14.10.2003 12:43
Elected   Сложная задачка для ПАСКАЛЯНТОВ!   14.10.2003 12:48
Fire_Rage   Re: Задачка для ПАСКАЛЯНТОВ!   15.10.2003 4:18
Elected   Задачка для ПАСКАЛЯНТОВ!   15.10.2003 7:45
Fire_Rage   Re: Re: Задачка для ПАСКАЛЯНТОВ!   16.10.2003 3:24
Gremlin   Re: Задачка для ПАСКАЛЯНТОВ!   16.10.2003 7:52
Fire_Rage   Re: Re: Задачка для ПАСКАЛЯНТОВ!   18.10.2003 3:31


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

 

- Текстовая версия 29.07.2025 16:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"