Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.20;
Скачать: CL | DM;

Вниз

Замена в файле 3 больших букв на аналогичные маленькие   Найти похожие ветки 

 
Indigo   (2007-12-18 14:04) [0]

Собственно, последний вопросик к вам. Необходимо открыть файл, в нём найти большие буквы A, B, C и заменить их на маленькие. Всё ничего, но файл невозможно открыть, выдаёт ошибку.
var
c, s, e: char;
i: integer;
fo, fi: Text;
fn: string[255];

begin

repeat

{-Открытие файла-}
repeat
writeln("Vvedite polnoe ima faila:"); readln(fn);
assign(fo,fn);
{$I-}      {отключение проверки ошибок в/в}
reset(fo);
{$I+}      {включение проверки ошибок в/в}
i:=IOResult;
if i<>0 then begin
writeln("Error: ",i:3);
writeln("Poprobuite ewe raz!");
end;
until i = 0;

  writeln("Open File:"); write(fo);

{-Создание и открытие файла исправлений-}
assign(fi,fn+"-mod.txt");
{$I-}      {отключение проверки ошибок в/в}
rewrite(fi);
{$I+}      {включение проверки ошибок в/в}
i:=IOResult;
if i<>0 then begin
writeln("Error: ",i:3);
writeln("File can not opened. Programa budet zakruta!");
readln;
exit;
end;
  writeln("Open File:"); write(fi);
writeln;

{-посимвольный перенос-копирование с исправлением-}
while not(eof(fo)) do
begin
read(fo,c);
if c = "A" then c := "a";
if c = "B" then c := "b";
if c = "C" then c := "c";
write(fi,c);
end;

{-возвращаем справедливость-}
close(fo);    writeln("Close File:"); write(fo);
close(fi);    writeln("Close File:"); write(fi);

   writeln("End of work? - 1, 0");
   readln(e);
   until e="1";

end.


 
turbouser ©   (2007-12-18 14:08) [1]


>
> Indigo   (18.12.07 14:04)
>
> невозможно открыть, выдаёт ошибку.

Какую?


 
Indigo   (2007-12-18 14:09) [2]

О том, что невозможно открыть файл, хотя файл создан, заполнен и доступен для чтения и записи.


 
Плохиш ©   (2007-12-18 14:22) [3]

Сначала файл нужно закрыть там, где он был "создан, заполнен".
При вводе пути с именем файла надо убедиться в отсутствии ошибок.


 
turbouser ©   (2007-12-18 14:23) [4]


> Indigo   (18.12.07 14:09) [2]

Не доступен, так как уже закрыт.
close(fo);    writeln("Close File:"); write(fo);
close(fi);    writeln("Close File:"); write(fi);


 
turbouser ©   (2007-12-18 14:23) [5]


> Indigo   (18.12.07 14:09) [2]

И, на будущее - код надо оформлять по человечески.


 
Indigo   (2007-12-18 14:28) [6]

Как это уже закрыт, если он закрывается в конце работы программы?


 
Palladin ©   (2007-12-18 14:31) [7]


> [6] Indigo   (18.12.07 14:28)

ну, мля, ты же сам дал команду закрыть close(fo), close(fi)


 
Сергей М. ©   (2007-12-18 14:38) [8]


> Indigo   (18.12.07 14:04)


Ты эту траву больше не кури.

Для сравнительно небольших файлов (а у тебя они небольшие, ибо изрядно отдает банальным "низачотом") есть готовый класс и готовые ф-ции:

sl: TStringList;
s: String;
..
sl := TStringList.Create;
try
 sl.LoadFromFile(fn);
 sl.Text := StringReplace(sl.Text, "A", "a", [rfReplaceAll]);
 sl.Text := StringReplace(sl.Text, "B", "b", [rfReplaceAll]);
 sl.Text := StringReplace(sl.Text, "C", "c", [rfReplaceAll]);
 sl.SaveToFile(fn);
finally
 ms.Free;
end;


 
Сергей М. ©   (2007-12-18 14:38) [9]


> ms.Free;


sl.Free


 
Indigo   (2007-12-18 14:39) [10]

Это вроде для делфи... мну под паскаль...


 
Сергей М. ©   (2007-12-18 14:42) [11]


> мну под паскаль


А конференция, меж прочим, "вроде под делфи".
Ты часом не заблудился ?


 
Indigo   (2007-12-18 14:44) [12]

Ну просто в делфи есть и консольные приложения насколько мне известно, а там паскальные функции.


 
Сергей М. ©   (2007-12-18 14:45) [13]


> Indigo   (18.12.07 14:44) [12]


> есть и консольные приложения насколько мне известно


Да, таковые имеют место быть.


> там паскальные функции


ты эту траву больше не кури.


 
turbouser ©   (2007-12-18 14:45) [14]


> Сергей М. ©   (18.12.07 14:38) [8]

У автора явно лаба по работе с файлами


> Сергей М. ©   (18.12.07 14:42) [11]

Мда...



Страницы: 1 вся ветка

Текущий архив: 2008.01.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
15-1197454973
Ломброзо
2007-12-12 13:22
2008.01.20
UML, Фаулер


15-1197538459
андр
2007-12-13 12:34
2008.01.20
SQL


15-1197530353
Dennis I. Komarov
2007-12-13 10:19
2008.01.20
Посоветуйте on-line мануальчик для Oracle желательно RU.


2-1197993068
авыф
2007-12-18 18:51
2008.01.20
TMemoryStream


15-1197517281
Slider007
2007-12-13 06:41
2008.01.20
С днем рождения ! 13 декабря 2007 четверг