![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
Задание: входными данными является фаил с заданным числом сменных имен и заданным числом строк текста для исправлений..
Ниже приведен пример текста (кстати скопировал с ДРКБ
Первые две строки - это то, что надо и на что надо заменить в тексте.. Помогите объяснить: каков должен быть алгоритм нахождения слов, которые надо заменить и заменяемые слова (алгоритм поиска первых двух строк)?! Зарание блогадорю за участие в данной теме -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
| Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
ну а есть условие по которому надо искать слова? или как?
-------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
По идеи стандартными фнкциями Pos, Copy, Delete.. или еще работать со строками как с массивом.. Но мне кажется что легче функциями.. -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
| Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
искать понятно что посом, я спрашиваю по какому условию слова отбирать надо?
Добавлено через 5 минут и 37 секунд А, торможу) тебе надо простой реплейс сделать) ну посом проходишь по всем строчкам, если находишь нужные слова, то удаляешь с полученой позиции количество символов, которое введено в первую строку и вставляешь вторую строку на тоже место. если я правильно понял что тебе нужно) -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
Ну в первых двух строках указаны слова: Перед to то что надо заменть, а после to то на что надо заменить.. -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
так... берем любую функцию для нахождения N-слова в строке, и делаем так...
1. находим количество слов.. 2. делаем цикл от 1 до N слов... выделяем каждое слов... 3. заменяем его... как хотим... Посмотри на функции ParamStr и ParamCount, переделай их под себя... и все.... -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
Для меня это еще пока что слишком новое Мне самое главное это понять как выделить слова которые надо заменить и слова заменяемые(первые две строки) я не могу додуматься какой там должен быть примерно алгоритм Это сообщение отредактировал(а) TwisT_X - 19.9.2007, 15:49 -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
ну когда находим слово.... специальной функцией.... находим и начало B этого слово... и само слово (значит знаем его длину), затем удаляем все от B по длину слова, и вставляем (Insert) в позицию B нужное слово... переходим к следующему слову...
-------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
1. что такое "В" ?! 2. мне надо понять алгоритм: как прога поймет какие слова искать и на что заминять (в данном случае первые две строки).. 3. а дальше уже легко будет -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
TwisT_X,
блин... B - это типа позиция начала слова в строке... как как поймет... функция ParamCount - количество слов в строке... и получается цикл.. for I:=0 to ParamCount("строка") do begin //ParamStr("строка",I); end; Во общем посмари на мои функции....
В общем использовать примерно так... ShowMessage(GetFastParam('слово1, слово2, "слово3" , слово4',3,',')); // слово номер 3, разделительный символ запятая... Подстрой под себя функции... ну или юзай пос и инсерт, делет... и т.п. -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
lukas, ты мну натолкнул на идею..
Вот тока вопрос такой: есть ли оператор который с мемо считывает строку и перегоняет ее в переменную?! -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
| Alix |
|
||||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
Можно я тут вас попугаю? Если действовать согласно правилам
Это сообщение отредактировал(а) Alix - 21.9.2007, 16:37 -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
||||
|
|||||
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
хм.. А как указать максимальную строку в мемо?! (ну кол-во строк в мемо)
и если s := memo1.lines[i]; мы записываем i+1 строку в переменную s, то как записать i строку?! Типо s := memo1.lines; ?! Alix, канешо можешь попугать)) Надо избегать замены уже замененных ранее подстрок)) Я вот еще думаю как оформить алгоритм: или загрузить текст в мемо и работать исключительно мемо или просто сразу работать с файлом.. Может кто то подскажет как лучше или легче?! -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
Строки в memo.lines нумеруются от 0 до memo.lines.count-1. Поэтому когда мы обращаемся к строке [i] мы обращаемся к i+1 строке.
Лучше работать сразу с файлом, из одного пишем, в другой, временный, пишем, потом удаляем исходный и переименовываем временный. Судя по Вашим вопросам, мучаться вы будете долго. Рекомендую почитать про алгоритмы поиска и замены строк. -------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| TwisT_X |
|
|||
![]() It's works! ![]() ![]() Профиль Группа: Участник Сообщений: 293 Регистрация: 15.2.2005 Где: Earth Репутация: нет Всего: 4 |
Alix, вы почти угадали
У меня еще нету с этим опыта.. Меня заинтересовали функции: ParamCount и ParamStr.. Но пока я про них еще ниче не знаю и не нашел покачто Не могли бы както об этом нимного рассказать?! -------------------- Если ты упадешь я буду рядом. (с) Асфальт |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |