Помощь - Поиск - Пользователи - Календарь
Полная версия: Файлы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Richard
Помогите пожалуйста решить вот такое задание:
В текстовом файле удалить все пробелы.
Дальше описания переменных зайти не могу.
Ozzя
Вспомогательным файлом пользоваться можно?
Richard
А че за вспомогательный файл?
Ozzя
while not eof(f) do
begin
read(f,ch); // Из одного читаешь
if ch <> ' ' then
write(f1,ch); // в другой пишешь
end;
Richard
То есть полностью программа должна выглядеть примерно так

Program files;
var
ch:char;
f,f1:text;
begin
assign(f, 'file.txt');
reset(f);
assign(f1,'file1.txt');
rewrite(f1);
while not eof(f) do
begin
read(f,ch);
if ch <> ' ' then
write(f1,ch);
end;
close(f);
close(f1);
end.


И вопрос как проверить что программа работает
Ozzя
В Блокноте набей произвольный текст.
И посмотри 2-й файл, если все пробелы удалились, то всё Ок.

Добавлено через 16 мин.
volvo
Пока ты здесь rolleyes.gif
Без вспомогательного файлакак решить?
У меня опять ступор norespect.gif
volvo
Цитата
Без вспомогательного файла как решить?
Если в условии ясно указано, что обрабатываться должен файл типа Text - то никак, это все-таки файл последовательного доступа; если просто дан файл, и с ним я могу делать все, что хочу - то File Of Char + фантазия... smile.gif
Ozzя

volvo
Меня почему-то пробивало на нетипизированный файл и blockread/blockwrite

Во 2-м случае
Malice
Цитата(Ozzя @ 22.05.2007 15:30) *

Пока ты здесь rolleyes.gif
Без вспомогательного файлакак решить?
У меня опять ступор norespect.gif

Ну или как обычно через одно место (стек, я имею ввиду smile.gif )
var f:text;
procedure del_(var f:text);
var s:string;
begin
if not eof (f) then begin
readln (f,s);
del_(f);
while pos (' ',s)>0 do delete (s, pos(' ',s),1);
writeln (f,s);
end else rewrite (f);
end;

begin
assign (f,'c:\tst.txt');
reset (f);
del_(f); reset (f);
del_(f);
close (f);
end.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.