IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на файлы.
Анисия
сообщение 27.02.2009 7:39
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Женский
Реальное имя: Анисия

Репутация: -  0  +


Добрый день, помогите решить задачу, есть файл со словами разделенных пробелом, вывести в новый файл все слова отличные от последнего. Первый файл я получила, читаю строки из него. А что дальше делать не знаю, или считать кол-во слов, или удалаять подстроку из строки.


program Lab3;
uses crt;
var f, g: text;
y, x :string; i:integer;

begin
clrscr;
assign(f,'C:\bp\bin\t.txt');
reset(f);
writeln('Содержание файла <f>');
repeat
readln(f, y);
writeln(' ', y);
until (eof(f));
close(f);
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Анисия
сообщение 3.03.2009 7:03
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Женский
Реальное имя: Анисия

Репутация: -  0  +


Спасибо большое за помощь, вот что у меня получилось.

program Lab3;
uses crt;
const m=[' '];
var f, g: text;
y, x, z:string; i:integer;

begin
clrscr;
assign(f,'C:\bp\bin\t.txt');
reset(f);
assign(g,'C:\bp\bin\g.txt');
rewrite(g);
writeln('Содержание файла <f>');
repeat
readln(f,y);
writeln(' ', y);

for i:=length(y) downto 1 do
if (y[i]=' ') then begin
x:=copy(y, i+1,length(y)-i);
break;
end;
until (eof(f));
writeln(g, x) ;
close(f);
close(g);
readln;
end.



Добавлено через 3 мин.
Lapp спасибо за помощь, но два часа ковыряний сегодня у меня не прошли даром. smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 3.03.2009 9:21
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Анисия @ 3.03.2009 7:03) *
вот что у меня получилось.
...
два часа ковыряний сегодня у меня не прошли даром.
Это в высшей степени похвально)). Я немного причесал твою прогу (постарайся разобраться с правильным форматированием - это несложно) и написал несколько замечаний.
program Lab3;
uses
crt; {CRT нужна только для ClrScr? Вредная штука эта CRT..}

const
m=[' ']; {а это чудо зачем тебе?? нигде, вроде, не используется..}

var
f, g: text;
y, x, z:string; i:integer; {а z зачеи понадобилось?..}

begin
clrscr; {зачем это? типа чистенько? не надо без нужды стирать и свое, и чужое}
assign(f,'t.txt'); {неужели ты все делаешь в c:\bp\bin?? жуткий бардак, наверное..}
{создавай свою дир для каждой задачи и работайц в ней}
reset(f);
assign(g,'g.txt');
rewrite(g);
writeln('Содержание файла <f>');
repeat
readln(f,y);
writeln(' ', y);
for i:=length(y) downto 1 do if y[i]=' ' then begin
x:=copy(y, i+1,length(y)-i); {это ты находишь последнее слово? почему в каждой строке?}
break; {неудачная конструкция. Используй while - не нужен будет break}
end;
until (eof(f));
writeln(g, x) ; {наконец-то что-то попало и в g smile.gif. Только то ли, что надо?}
close(f);
close(g);
readln;
end.

Но требуемым результатом пока не пахнет)).
По-хорошему, (если уж хочешь наворотов,) нужно сделать что-то типа функции для чтения следующего слова из текста. Тогда вся программа будет состоять из двух проходов: первый раз до последнего слова, а второй с записью в выходной файл нужных слов.

Преимущество моего варианта состоит в минимальности накладываемых ограничений. Вот встретится тебе в файле строка с количеством букв больше 255 - и что делать?

Не обращай внимания на мое брюзжание)), делай как делается. Покажи, что получится еще через два часа.. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Анисия   Задача на файлы.   27.02.2009 7:39
bura   Тебе надо найти последнее слово. Потом снова надо ...   27.02.2009 10:31
Анисия   Делаю цикл обратный, for i:=length(y) downto 1 d...   2.03.2009 12:21
maksimla   может сделай так раз отделены слова пробелом то ...   2.03.2009 12:51
Unconnected   Ты читаешь в переменную у и при следующей итерац...   2.03.2009 19:11
Unconnected   var f:text; y,y2,y3,y4:string; a:int...   2.03.2009 20:04
Lapp   не обрабатываются пробелы перед/после дефисаи что ...   3.03.2009 4:42
Lapp   Вот простенькое решение. Учти, что я интерпретиро...   3.03.2009 5:22
Анисия   Спасибо большое за помощь, вот что у меня получило...   3.03.2009 7:03
Lapp   вот что у меня получилось. ... два часа ковыряний ...   3.03.2009 9:21
Анисия   Правильно сказали, я не то совсем нахожу...... спа...   3.03.2009 10:17
Unconnected   Насчёт дефиса - это я имел в виду, что если дать...   3.03.2009 13:44
Lapp   Насчёт дефиса - это я имел в виду, что если дать п...   3.03.2009 14:46
Unconnected   Ага, на многострочных не работает, хотя изначально...   3.03.2009 14:58


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 8:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"