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

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

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

 
 Ответить  Открыть новую тему 
> Строки, слова в строке
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

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


Люди!!! Плиз. Не могу сообразить, как вывести все слова данной строки в столбик?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


раскрыть глаза пошире
http://forum.pascal.net.ru/index.php?showtopic=6972


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

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


Есть такая задача. "Дан текстовый файл F. Переписать в другой файл G все строки из файла F, начинающиеся с символа S, где символ S задается пользователем." Проблема в том, что прога ещё и переписывает все нулевые строки. Как от них избавиться?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


Цитата
Проблема в том, что прога ещё и переписывает все нулевые строки

допутсим ты читаешь строку s.
переписывай ее только в том случае если s<>''

а вернее так.
пусть строка c, и задан символ s.
if s[1]=s then пишем строку куда надо


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

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


ОГРОМАДНЕЙШЕЕ СПАСИБО!!! В принципе, я так и думал, но не мог записать. Писал то s[1]<>0, то s<>’ ‘. Ещё раз thank you. А вот со словами в столбик я не разобрался. Там слишком мудрёные способы. А у меня то задачка совсем простенькая: «Дана строка символов. Получить все слова, расположенные после первого и до второго двоеточия. Если второго двоеточия нет, то получить все слова после первого двоеточия до конца строки.» С двоеточиями я разобрался, там всё путём. А вот как эти долбанные слова в столбик вывести, я не могу допереть.
Пишу
repeat 
word1:=copy(words,1,pos(‘ ‘,words));
delete(words,1,pos(‘ ’,words));
writeln(word1);
until pos(‘ ‘,words)=0;
writeln (words);

И он мне выводит в столбик, но и ещё пробелы в столбик выводит. Как их удалить?
Помоги, горю, может свой вариант есть?

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

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


Цитата
он мне выводит в столбик, но и ещё пробелы в столбик выводит

до
writeln (words);
напии
while pos(' ',words) <>0 do delete (words,pos(' ',words),1);
проверь только я не перепутал по памяти параметры у pos... (может наоборот не помню)

или у тебя прбелы как слова выводятсчя? тогда опять
if (words<>'') and (words<>' ') then writeln(words);


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Или так:
repeat
word1:=copy(words,1,pos(' ',words));
delete(words,1,pos(' ',words));

while(words[1] = ' ') do delete(words, 1, 1); { <-- !!! }

writeln(word1);
until pos(' ',words)=0;
writeln (words);
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

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


Вау, круто! Вариант volvo попёр. Но небольшая проблема: если в строке после последнего слова напечатать более 1 пробела, то прога виснит. Можно было плюнуть на это, может препод при проверке и не наколится на это. Но наш препод любую недоработанную прогу повешает. Может есть какие-то соображения?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
если в строке после последнего слова напечатать более 1 пробела, то прога виснит.

yes2.gif Само собой... Удаляй все ведомые пробелы еще до начала обработки:
  { Вот так }
while words[length(words)] = ' ' do
delete(words, length(words), 1);

repeat
word1:=copy(words,1,pos(' ',words));
delete(words,1,pos(' ',words));
while(words[1] = ' ') do delete(words, 1, 1);
writeln(word1);
until pos(' ',words)=0;
writeln (words);
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

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


Мать моя – женщина!!! Работает блин!!! Я от радости прыгаю до потолка! Спасибо, мужики! Супер форум! Удачи всем!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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