Во входном файле F1 находится список имен файлов с расширением pas , а в файле F2 - другой список имен тоже с расширением pas. Добавить в список файлов из F1 список из F2 таким образом, что в случае совпадения имен и расширений у двух файлов из F1 и F2 расширение файла из F1 меняется на bak .
в прикрепленном два файла с входными данными....
Спасибо...
volvo
16.11.2005 15:17
Что-то в этом духе (учти, исходный list1.txt будет перезаписан):
uses dos;
const max_size = 20; { можешь увеличить } type list_type = array[0 .. pred(max_size)] of string;
function read_list(var f: text; var arr: array of string): integer; var count: integer; s: string; begin count := -1; while not seekeof(f) do begin readln(f, s); inc(count); arr[count] := s; end; read_list := count; end;
procedure check_exists(var arr: array of string; n: integer; s: string); var i: integer; found: boolean; s_dir: dirstr; s_name: namestr; s_ext: extstr; begin i := 0; found := false; while (i <= n) and not found do if arr[i] = s then begin fsplit(s, s_dir, s_name, s_ext); arr[i] := s_name + '.bak'; found := true; end else inc(i) end;
var list_1, list_2: list_type; i, count_1, count_2: integer;
f1, f2, f3: text;
begin assign(f1, 'list1.txt'); reset(f1); assign(f2, 'list2.txt'); reset(f2);
Может, у тебя что-то не то с компилятором? Урезанная версия какая-нибудь?
Попробуй определить явно:
type dirstr = string[67]; namestr = string[8]; extstr = string[3];
хотя это навряд ли поможет - FSplit тоже описана в модуле DOS...
naumkin
16.11.2005 16:41
Если модуль Dos должен быть где то папке с компилятором то у меня его нет
если не трудно можно попросить, кинуть его мне на naumkin@medem.ru
или ссылку дать....пожалуйста.....
volvo
16.11.2005 16:49
Цитата
Если модуль Dos должен быть где то папке с компилятором то у меня его нет
Sorry, но если бы его у тебя не было, ты бы получал ошибку еще на первой строке:
Цитата
Error 15: File not found (DOS.TPU)
так что модуль у тебя есть... И находится он в файле TURBO.TPL (по крайней мере, он должен там находиться). Попробуй заменить свой Turbo.TPL моим:
naumkin
16.11.2005 17:22
Спасибо....заработало....только вот расширение на .bak почему-то не меняется.....
volvo
16.11.2005 17:28
Все-таки ищи нормальный компилятор... Все прекрасно работает. Вот тот файл, что получился у меня...
naumkin
16.11.2005 19:23
Спасибо огромное....работает...
Вот такую бы еще решить... последняя.... остальные сам добил....
В текстовом файле F1 задан список фамилий (по одной на стpоке, не более 15 символов). Разpаботать пpоцедуpы: 1. P1 - фopмиpования очеpеди с элементом типа string[15] из стpок файла G. 2. P2 - вывода содеpжимого очеpеди в естественном поpядке без ее уничтожения в текстовый файл K. 3. P3 - вывода содеpжимого очеpеди в обpатном поpядке без ее уничтожения в текстовый файл K. С помощью этих пpоцедуp записать содеpжимое исходного файла F1 в очеpедь, вывести очеpедь в файл F2 в пpямом и обpатном поpядке,уничтожить пеpвый и последний элементы и снова вывести в пpямом и обpатном поpядке.
Буду премного благодарен за помошь.......
volvo
16.11.2005 20:43
To: naumkin Ты в FAQ заглядывал? Настоятельно рекомендую заглянуть, чтобы зря велосипеды не изобретать, там есть реализация DEQUE, это как раз то, что тебе нужно (та же самая очередь, но доступ возможен с двух сторон).