![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
BoB@N |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача:
/В каждом из слов текстового файла замените последнюю букву звёздочкой/ 1)Как сделать так,чтобы прога подсчитывала кол-во символов в слове? ![]() |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
BoB@N |
![]()
Сообщение
#3
|
|||
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ого как быстро!!
![]()
|
|||
BoB@N |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
klem4, смотри:
Вот пусть такой простенький первоначальный исходник с надписью в текстовом файле: “Turbo Pascal Forever” Код uses crt; var f: text; l: string; begin clrscr; assign(f, 'd:\text.txt'); reset(f); Read(f,l); Writeln(l); readkey; end. Вот пример твоего метода: Код const limits = [#0..#32,'.',',',':',';','!','?','"']; type TWords = array[1..40] of string; var text : string; words : TWords; function GetWords(s : string; var w : TWords) : byte; var i,back,n : byte; begin i := 1; n := 0; while(i<=length(s)) do begin while(i<=length(s)) and (s[i] in limits) do inc(i); if i<=length(s) then begin back := i; while(i<=length(s)) and not(s[i] in limits) do inc(i); inc(n); w[n] := copy(s, back, i-back); end; end; GetWords := n; end; Как его применить к данной проге? |
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
например вот так :
uses crt; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
BoB@N
Цитата Как сделать так,чтобы прога подсчитывала кол-во символов в слове? Ты как раз выбрал не совсем подходящий вариант... По той же ссылке, которую тебе дал klem4, прямо перед его способом есть мой способ, при котором Цитата (информация о найденных словах хранится в массиве, но НЕ в виде самих слов, а в виде <начало слова в строке, длина слова>) Я так понимаю, длина слова это то, что тебе надо? |
BoB@N |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo, совершенно верно!
![]() Только вопрос тот же: Как применить к исходнику выше... ![]() Сообщение отредактировано: BoB@N - 9.12.2005 18:50 |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата Как применить к исходнику выше ![]() const Проще, не правда ли? |
BoB@N |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ой, сдесь что-то не так!!!
![]() (Constant out of range.) Код begin count := -1; i := 1; while i <= length(s) do begin |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата Ой, сдесь что-то не так!!! ![]() Ага... Измени на var Странно, FPC пропускает... |
GoodWind |
![]()
Сообщение
#11
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Цитата (Constant out of range.) ![]() ![]() добавил позже: ![]() ![]() ![]() ![]() прости volovo, я думал это его исходник ![]() Сообщение отредактировано: GoodWind - 9.12.2005 22:33 -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
BoB@N |
![]()
Сообщение
#12
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
![]() А у меня просто черный экран ![]() |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
У тебя в файле последняя строка - пустая? Это глюк Паскаля, если последняя строка файла - НЕ пустая, то она не прочитается через ReadLn(f, ...), так что добавь в файл TXT пустую строку.
P.S. Программа исправлена... Попробуй новую версию... Сообщение отредактировано: volvo - 9.12.2005 22:58 |
BoB@N |
![]()
Сообщение
#14
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
![]() ![]() Огромное СПАСИБО!!! ![]() |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:11 |