Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.034 c
15-1197359222
Kolan
2007-12-11 10:47
2008.01.20
Code Gear тут дисочки раздает :)


15-1197795244
Kostafey
2007-12-16 11:54
2008.01.20
С днем рождения ! 16 декабря


15-1197354355
@!!ex
2007-12-11 09:25
2008.01.20
BDS->Delphi 7


2-1197922608
istok
2007-12-17 23:16
2008.01.20
Overflow ...


2-1197992248
umbra
2007-12-18 18:37
2008.01.20
что делать с параметрами в TADODataSet.?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский