Форум: "Начинающим";
Текущий архив: 2008.01.20;
Скачать: [xml.tar.bz2];
ВнизЗамена в файле 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.417 c