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

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

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

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


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

 





- Текстовая версия 16.06.2024 16:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name