Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Вниз

Замена слов в массиве   Найти похожие ветки 

 
Vikindos ©   (2008-07-14 18:49) [0]

Доброго времени суток. У меня такой вопрос, нет ли у кого функции замены слов в массиве char.

Предположим есть массив
mas : array[0..50000] of char;
И мне надо заменить в нем слово "управление", на слово "проводка".

А конечно в идеале бы так.

Предположим есть массив
mas : array[0..50000] of char;
И мне надо заменить в нем слова со слова "управление" по слово "право", на слово "проводка".


 
Palladin ©   (2008-07-14 18:57) [1]

есть конечно, StringReplace + F1


 
Vikindos ©   (2008-07-14 19:14) [2]

Дело в том, что я использую только

uses
 windows


 
Palladin ©   (2008-07-14 19:19) [3]

жалко...


 
Smile   (2008-07-14 19:29) [4]

>Palladin ©   (14.07.08 19:19) [3]
жалко...

мне тоже
>Vikindos ©   (14.07.08 18:49)
а предположим каким образом ты собираешься "сказать" своему приложению, что на что ты собираешься заменять (использую только Windows)?


 
Denis__ ©   (2008-07-14 19:48) [5]


> И мне надо заменить в нем слово "управление", на слово "проводка".

А оставшиеся символы должны сдвинуться?


 
Vikindos ©   (2008-07-14 19:57) [6]

Да, остальные должны сдвинуться, массив с запасом.

Может с памятью работать?.. нужен пример.


 
tesseract ©   (2008-07-14 20:02) [7]


> Может с памятью работать?.. нужен пример.


GetMem/FreeMem ? Или посмотреть реализацию StringReplace ?


 
Vikindos ©   (2008-07-14 20:55) [8]

GetMem/FreeMem. Если StringReplace может такие действия делать с чар, то ведь можно оттуда взять функции и переделать под uses windows;


 
Johnmen ©   (2008-07-14 21:34) [9]


> переделать под uses windows

Что это Бэрримор? (c)


 
palva ©   (2008-07-14 21:48) [10]


> И мне надо заменить в нем слова со слова "управление" по
> слово "право", на слово "проводка".

Можете пояснить, какие слова входят в диапазон "управление".."право"


 
Loginov Dmitry ©   (2008-07-14 22:27) [11]

> Дело в том, что я использую только
>
> uses
> windows


Религия?


 
Игорь Шевченко ©   (2008-07-14 22:31) [12]

можно даже не использовать uses Windows для такой замены.


 
Vikindos ©   (2008-07-15 00:57) [13]

Оффтоп!

"управление".."право"  другие слова.

Использую только uses windows; нужна полная оптимизация, быстрота и лёгкость.


 
Юрий Зотов ©   (2008-07-15 01:15) [14]

> Vikindos ©   (15.07.08 00:57) [13]

> нужна полная оптимизация, быстрота и лёгкость.

Требования несовместимы.


 
Vikindos ©   (2008-07-15 01:54) [15]

я понял, мне тут вообще не помогут.


 
Германн ©   (2008-07-15 02:00) [16]


> Vikindos ©   (15.07.08 01:54) [15]
>
> я понял, мне тут вообще не помогут.
>

Эт точно, Ни у кого тут нет волшебной палочки.

P.S. Ну насколько прозорлив был Н.Носов, когда писал "Незнайка в Солнечном городе".


 
Vikindos ©   (2008-07-15 02:01) [17]

ну значит придется самому писать. xD


 
KilkennyCat ©   (2008-07-15 02:09) [18]


> Vikindos ©   (15.07.08 02:01) [17]
> ну значит придется самому писать. xD


Может, не надо, а? Итак энтропия, коллайдер опять же...


 
Vikindos ©   (2008-07-15 02:11) [19]

коллапс нечистот в моем сознание все равно выплеснет это в программный код. Пока что сдела через pchar


 
KilkennyCat ©   (2008-07-15 02:15) [20]

гы :) у меня тож коллапс нечистот...  посмотрим, во что утром выльется...  на нобелевку не потянем, конечно, но нативеый доступ к мдэшнику я все-таки замутю...

А вот я бы работал с байтами. Я строки, чары ваще не люблю.


 
Vikindos ©   (2008-07-15 02:18) [21]

Это мне кажется будет дольше, если я верно понял, как это реализовать. (сомнение)


 
Германн ©   (2008-07-15 02:34) [22]


> Vikindos ©   (15.07.08 02:18) [21]
>
> Это мне кажется будет дольше, если я верно понял, как это
> реализовать. (сомнение)
>

Это тебе решать.


 
Vikindos ©   (2008-07-15 03:02) [23]

Я про выполнение, надо как можно быстрее, замен много.


 
Riply ©   (2008-07-15 05:27) [24]

> [15] Vikindos ©   (15.07.08 01:54)
> я понял, мне тут вообще не помогут.

А самому чуть подумать лень ? Уже надоело слушать жалобы "обыскал весь интернет - готового решения не нашел".
Можно поступить, примерно так:
Бежим по массиву, находим "управление", делаем Move в него "проводка",
запоминаем указатель pLast на окончание "проводка".
Бежим до следующего "управление". Move`им кусок, который пробежали в pLast.
Дописываем "проводка". Запоминаем pLast на окончание "проводка". Сдвигаемся на размер "управление" и бежим дальше.
и т.д.
Итого: один цикл и одна функция Move - все чем надо уметь пользоваться.
(ну может еще придется написать ф-ию сравнения)


 
Riply ©   (2008-07-15 05:30) [25]

>  [24] Riply ©   (15.07.08 05:27)
"Сдвигаемся на размер "управление" и бежим дальше"
Имелось ввиду сдвигаемся от того места, куда добежали, а не от pLast.


 
brother ©   (2008-07-15 06:42) [26]

> я понял, мне тут вообще не помогут.

натолкнуть на умные мысли - да..
зы готовый код денег стоит...


 
palva ©   (2008-07-15 07:13) [27]


> > я понял, мне тут вообще не помогут.

Ну на ваш заглавный вопрос ответить просто: такой функции не существует, поскольку вопрос не корректный. Просьбы дать пояснения вы игнорируете.


 
Loginov Dmitry ©   (2008-07-15 07:52) [28]

> Я про выполнение, надо как можно быстрее, замен много.


Тогда причем тут требование про uses Windows? Наличие дополнительных подключенных модулей врядли будет влиять на скорость выполнения кода.
Напиши свой аналог StringReplace() для твоего случая (реально сделать в сотни раз быстрее). Тем более буферы у тебя уже подготовлены. Два цикла while и немного кода - и все готово.


 
Vikindos ©   (2008-07-15 08:42) [29]

StringReplace() работает с массивом чар? может заменить от и до?


 
brother ©   (2008-07-15 08:44) [30]

> Напиши свой аналог StringReplace()

для твоего случая


 
Sha ©   (2008-07-15 09:10) [31]

> Riply ©   (15.07.08 05:27) [24]
> Уже надоело слушать жалобы "обыскал весь интернет - готового решения не нашел".

Даже этого не сделано.


 
Сергей М. ©   (2008-07-15 09:50) [32]


> Vikindos ©   (15.07.08 08:42) [29]
>
> StringReplace() работает с массивом чар?


Работает.


 
GrayFace ©   (2008-07-18 20:59) [33]

Держи: http://www.grayface.nm.ru/RSStringReplace.rar
SysUtils из uses, наверное, можно выкинуть.

Vikindos ©   (15.07.08 8:42) [29]
StringReplace() работает с массивом чар? может заменить от и до?

string - самый лучший массив char"ов. По-моему, на Королевстве Delphi была хорошая статья про динамические массивы - поищи.
А обычный StringReplace() тебе не подайдет, т.к. очень неоптимален.


 
Vikindos ©   (2008-07-18 23:57) [34]

Я так понял, function RSStringReplace , что-то сложно x(


 
Vikindos ©   (2008-07-19 00:21) [35]

всем спасибо, справился сам. pchar


 
GrayFace ©   (2008-07-19 00:49) [36]

Покажи код



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.057 c
15-1214169951
Германн
2008-06-23 01:25
2008.08.24
У нас есть прекрасный шанс!


2-1216717555
Vlad Oshin
2008-07-22 13:05
2008.08.24
то работает, то не работает. Не объясните почему?


2-1216194913
Gamer
2008-07-16 11:55
2008.08.24
как лучше сделать выбор с БД


2-1216215791
savyhinst
2008-07-16 17:43
2008.08.24
TComponentName = type string;


15-1215413564
ПЛОВ
2008-07-07 10:52
2008.08.24
Файл bla.bla является скрытым





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский