Главная страница
    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.48 MB
Время: 0.084 c
15-1197530353
Dennis I. Komarov
2007-12-13 10:19
2008.01.20
Посоветуйте on-line мануальчик для Oracle желательно RU.


2-1198096409
Cent
2007-12-19 23:33
2008.01.20
Форточка => кнопочка в панели задач


15-1197484235
Petr V. Abramov
2007-12-12 21:30
2008.01.20
Что хорошо системному администратору,..


2-1198071249
Alik
2007-12-19 16:34
2008.01.20
Кодировка КОИ-8 в текстовом файле


2-1198171895
savyhinst
2007-12-20 20:31
2008.01.20
Сменить длину динамического массива строк из процедуры нельзя?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский