Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ заменить в файле + на -

Автор: gylayko 3.12.2011 16:16

Открыть файл я смогу, вот
assign(f,'C:\12.txt');
reset(f);
потом нужно поменять в нем + на - и наоборот
примерно что-то такое
while not eof(f) do
begin
for i:=1 to length(f) do
if f[i]='-' then
f[i]:='+' else
if f[i]='+' then
f[i]:='-';
writeln(f);
end;
но оно не работает, исправьте меня!

Автор: sheka 3.12.2011 19:52

К файлу нельзя обращаться как к массиву.

CharSize := SizeOf(Char);
AssignFile(f, 'file.txt');
Reset(f, CharSize);
while not Eof(f) do
begin
BlockRead(f, ch, 1);
if ch = '+' then
begin
Seek(f, filepos(f) - 1);
ch := '-';
BlockWrite(f, ch, 1);
end;
end;
CloseFile(f);

Автор: Lapp 4.12.2011 6:39

Шека, все правильно, только можно немного упростить себе жизнь, использовав не просто file, а file of char.
+1

Автор: sheka 4.12.2011 8:07

Так не интересно.