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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2012, 20:07   #1
wOOp
Пользователь
 
Регистрация: 29.03.2012
Сообщений: 23
По умолчанию Работа с файлами

Дан символ С – строчная (маленькая) русская буква и текстовый файл. Создать строковый файл и записать в него все слова из исходного файла, начинающиеся с этой буквы (прописной или строчной). Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/ концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым.

От этой стены текста даже дурно становится
Помогите пжл с решением =)
wOOp вне форума Ответить с цитированием
Старый 03.04.2012, 21:41   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Проверьте
(Словом считается последовательность русских букв)
Код:
uses CRT;
var
c,k:char;
f1,f2:textfile;
sl:string;
b:set of char;
function upperchar(c:char):char;
begin
case ord(c) of
	160..175:upperchar:=chr(ord(c)-32);
  224..239:upperchar:=chr(ord(c)-80);
	241:upperchar:=chr(240);
	else
	upperchar:=c;
	end;
end;
BEGIN
b:=[chr(128)..chr(175),chr(224)..chr(241)];
write('Vvedite simvol: ');
readln(c);
c:=upperchar(c);
assign(f1,'in.txt');
assign(f2,'out.txt');
reset(f1);
rewrite(f2);
while not eof(f1) do
begin
	sl:='';
	read(f1,k);
	while (not eof(f1)) and (k in b) do
	begin
		sl:=sl+k;
		read(f1,k);
	end;
	if length(sl)<>0 then
		if upperchar(sl[1])=c then
			writeln(f2,sl);
end;
close(f1);
close(f2);
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 03.04.2012, 21:55   #3
wOOp
Пользователь
 
Регистрация: 29.03.2012
Сообщений: 23
По умолчанию

неизвестное имя типа textfile
wOOp вне форума Ответить с цитированием
Старый 03.04.2012, 22:36   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Исправьте на var f1,f2: Text;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 04.04.2012, 19:23   #5
wOOp
Пользователь
 
Регистрация: 29.03.2012
Сообщений: 23
По умолчанию

А, есть небольшая проблема
выводимые слова не корректно выписываются в результирующий файл, т.е есть слова
сила сушка салат

а выводит следующее
сила
с
сала
р

что необходимо исправить?

Последний раз редактировалось wOOp; 04.04.2012 в 19:59.
wOOp вне форума Ответить с цитированием
Старый 04.04.2012, 19:46   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Еще раз проверьте наличие файла.
Возможно у вас файл in.txt.txt.
Зайдите в "Документы"->"Упорядочить"->"Параметры папок и поиска"->"Вид" и снимите галочку "Скрывать расширения для зарегестрированных типов файлов".
Посмотрите опять на файл и, если нужно, исправьте имя.
Убедитесь, что текстовый файл и ехе-файл программы лежат в одной директории.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 04.04.2012, 20:03   #7
wOOp
Пользователь
 
Регистрация: 29.03.2012
Сообщений: 23
По умолчанию

да, спасибо
с этим уже разобрался, сам немного накосячил
а проблема 2 постами выше =)
wOOp вне форума Ответить с цитированием
Старый 04.04.2012, 20:14   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Нашел 1 ошибку (последний символ слова терялся).
Код:
uses CRT;

var
  c, k: char;
  f1, f2: textfile;
  sl: string;
  b: set of char;

function upperchar(c: char): char;
begin
  case ord(c) of
    160..175: upperchar := chr(ord(c) - 32);
    224..239: upperchar := chr(ord(c) - 80);
    241: upperchar := chr(240);
  else
    upperchar := c;
  end;
end;
begin
  b := [chr(128)..chr(175), chr(224)..chr(241)];
  write('Vvedite simvol: ');
  readln(c);
  c := upperchar(c);
  assign(f1, 'in.txt');
  assign(f2, 'out.txt');
  reset(f1);
  rewrite(f2);
  while not eof(f1) do
  begin
    sl := '';
    read(f1, k);
    while (not eof(f1)) and (k in b) do
    begin
      sl := sl + k;
      read(f1, k);
    end;
    if (k in b) then
      sl := sl + k;
    if length(sl) <> 0 then
      if upperchar(sl[1]) = c then
        writeln(f2, sl);
  end;
  close(f1);
  close(f2);
end.
Программа расчитана на кодировку текста OEM 866, то есть текстовый файл легче всего создать из Паскаля или воспользоваться специальными программами (Notepad++, Штирлиц), чтобы задать требуемую кодировку.

Попробуйте входной файл из вложения.
Изображения
Тип файла: jpg вывод.jpg (22.5 Кб, 114 просмотров)
Вложения
Тип файла: txt in.txt (16 байт, 114 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 04.04.2012 в 20:24.
BDA на форуме Ответить с цитированием
Старый 04.04.2012, 20:21   #9
wOOp
Пользователь
 
Регистрация: 29.03.2012
Сообщений: 23
По умолчанию

уже лучше, но все же выводит слова не до конца
или это уже проблема не в коде?
wOOp вне форума Ответить с цитированием
Старый 04.04.2012, 20:39   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Я надеюсь, вы заметили текстовый файл постом выше.
Проверьте его, пожалуйста.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами на Си genia Общие вопросы C/C++ 4 19.02.2011 16:29
Работа с файлами на С# Darh Помощь студентам 6 11.06.2010 03:00
Работа с файлами в С++ ai\ekcah^p Помощь студентам 2 21.06.2009 16:16
Работа с файлами Pr1meEX PHP 9 21.06.2009 03:15
Работа с файлами Smith777 Помощь студентам 4 23.02.2008 05:08