Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 3


to1251[205]='='; /* Увеличиваем на 16 коды букв от "р" до "я" */

for(i=224; К256; i++)

to1251[i]=i+16;

to1251[2401=168; /* Заменяем код буквы "ё" */

to1251[241]=184; /* Заменяем код буквы "Ё" */

return; }

Программа 7_05.pas

program translate; var

to1251:array [0..255] of char;

fin,fout:text;

str:string[803;

source:string[80];

j,len:integer; procedure to_win;

var

i:integer; begin

for i:=0 to 127 do

to1251[i]:=chr(i);

for i:=128 to 175 do

to1251[i]:=chr(1+64);

for i:=176 to 223 do

to1251[i]:='+';

to1251[179]:='|';

to1251[186]:='|';

to1251[196]:= '-';

to1251[205]:= '=';

for i:=224 to 239 do

to1251[i]:=chr(i+16);

to1251[240]:=chr(168);

to1251[241]:=chr(184);

end;

begin

if(ParamCount=2) then source:=ParamStr(1)

else begin

write('Задайте имя исходного файла - ');

readln(source);

end; to_win;

assign(fin,source);

reset(fin);

assign(fout, 'tmpwin.txt');

rewrite(fout);

while (not eof(fin)) do begin

readln(fin,str);

len:=length(str);

for j:=0 to len do

str[j]:=to1251[ord(str[j])];

writeln(fout,str);

end;

close (fin);

close(fout);

end.

Задание 7.06. Телефонный справочник

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

Совет 1 (QBasic)

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

Совет 3 (Паскаль)

Паскаль не позволяет открыть несуществующий файл на дозапись. Поэтому перед обращением к процедуре append приходится отключать системный контроль за ошибками ввода/вывода. Если открытие на дозапись не состоялось, то в первый раз приходится открывать файл notebook на запись. При чтении два текстовых значения в одной файловой строке здесь, конечно, можно разделить — телефон занимает фиксированное количество позиций в конце строки, между фамилией и телефоном находится какое-то количество пробелов. Однако для вывода на экран это не требуется.




Содержание  Назад  Вперед