Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2009, 16:16   #1
-COREY-
Пользователь
 
Аватар для -COREY-
 
Регистрация: 19.04.2009
Сообщений: 50
По умолчанию работа с текстовым файлом(pascal)

условие:
Задан текстовой файл. Напечатать все элементы этого файла отличные от цифр, латинских и русских букв. (каждый элемент печатать только по одному разу, независимо от того, сколько раз он встречается).Результат нужно записать в другой файл.
код:
Program Corey_9;
var f,f1:file of string;
i:integer;
S:string;
a:set of char;
procedure one;
begin
a:=[',','.','!','@','$','(',')'];
for i:=length(S) downto 1 do
for i:=0 to 255 do
if a in S then writeln(i,' ');
readln(f,S);
end;
begin
assign(f,'F:\input.txt');
reset(f);
assign(f1,'F:\input2.txt');
rewrite(f1);
while not eof(F) do one
writeln(S);
writeln(f1,S);
close(f);
close(f1);
readln
end.
ошибка в строке - if a in S then writeln(i,' ');
pascal пишет error 41.
напишите,пожалуйста,как решить эту проблему и проверьте на наличие других ошибок.Заранее спасибо
-COREY- вне форума Ответить с цитированием
Старый 19.04.2009, 16:56   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
for i:=length(S) downto 1 do
for i:=0 to 255 do
Пытаетесь использовать один и тот же счетчик в двух циклах?
Код:
a:=[',','.','!','@','$','(',')'];
Вы так уверены, что это все существующие элементы "отличные от цифр, латинских и русских букв"?

И потом:
Цитата:
каждый элемент печатать только по одному разу, независимо от того, сколько раз он встречается
То есть нужно заводить второе множество.

Проще было переписать.
Код:
Program Corey_9;
uses crt;
var f,f1: text;
a,b:set of char;
c : char;

begin
clrscr;
assign(f,'input.txt');
reset(f);
assign(f1,'input2.txt');
rewrite(f1);

a := ['0'..'9','A'..'Z','a'..'z'];
b := [];

while not eof(F) do
 begin
 read(f,c);
 if not (c in a) and not (c in b) then
  begin
  write(f1,c);
  include(b,c);
  end;
 end;

close(f);
close(f1);
readln;
end.
Русские буквы в множество a добавьте сами.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с текстовым файлом Cеверина Помощь студентам 4 30.03.2009 12:20
Работа с текстовым файлом simka007 Помощь студентам 7 06.02.2009 14:21
Работа с текстовым файлом GazimagomedovM Помощь студентам 12 17.07.2008 18:24
Работа с текстовым файлом nataly_ukr БД в Delphi 23 07.12.2007 22:13
Работа с текстовым файлом! Edimus Общие вопросы C/C++ 10 19.11.2007 10:31