![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
naumkin |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Господа, помогите пожалуйста решить....
Во входном файле F1 находится список имен файлов с расширением pas , а в файле F2 - другой список имен тоже с расширением pas. Добавить в список файлов из F1 список из F2 таким образом, что в случае совпадения имен и расширений у двух файлов из F1 и F2 расширение файла из F1 меняется на bak . в прикрепленном два файла с входными данными.... Спасибо... Прикрепленные файлы ![]() ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
![]() 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);
count_1 := read_list(f1, list_1);
count_2 := read_list(f2, list_2);
for i := 0 to count_2 do
check_exists(list_1, count_1, list_2[i]);
rewrite(f1);
for i := 0 to count_1 do
writeln(f1, list_1[i]);
for i := 0 to count_2 do
writeln(f1, list_2[i]);
close(f2);
close(f1);
end.
|
naumkin |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо за ответ, но
вот в этой строке выдает ошибку Unknown identifier.... s_dir: dirstr; s_name: namestr; s_ext: extstr; какго типа они должны быть??? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
To: naumkin
Какой компилятор? Эти типы описаны в модуле Dos, я не зря его подключил... |
naumkin |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Turbo Pascal 7
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
|
naumkin |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если модуль Dos должен быть где то папке с компилятором то у меня его нет
![]() если не трудно можно попросить, кинуть его мне на naumkin@medem.ru или ссылку дать....пожалуйста..... Сообщение отредактировано: naumkin - 16.11.2005 12:42 |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата Если модуль Dos должен быть где то папке с компилятором то у меня его нет Sorry, но если бы его у тебя не было, ты бы получал ошибку еще на первой строке: Цитата Error 15: File not found (DOS.TPU) так что модуль у тебя есть... И находится он в файле TURBO.TPL (по крайней мере, он должен там находиться). Попробуй заменить свой Turbo.TPL моим:Прикрепленные файлы ![]() |
naumkin |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо....заработало....только вот расширение на .bak почему-то не меняется.....
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Все-таки ищи нормальный компилятор... Все прекрасно работает. Вот тот файл, что получился у меня...
Прикрепленные файлы ![]() |
naumkin |
![]()
Сообщение
#11
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо огромное....работает...
Вот такую бы еще решить... последняя.... остальные сам добил.... В текстовом файле 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 |
![]()
Сообщение
#12
|
Гость ![]() |
To: naumkin
Ты в FAQ заглядывал? Настоятельно рекомендую заглянуть, чтобы зря велосипеды не изобретать, там есть реализация DEQUE, это как раз то, что тебе нужно (та же самая очередь, но доступ возможен с двух сторон). Реализация - здесь: FAQ: Все о динамических структурах данных -> Дек Единственное, что останется сделать - заменить TData на нужный тебе тип... |
![]() ![]() |
![]() |
Текстовая версия | 31.07.2025 3:07 |