красиво оформлено. исходник порадовал. мне не нравится использование модуля sysutils. ибо пользую библиотеку KOL. могу я выдрать нужные мне функции и положить выдранную процедуру в какой-нибудь свой файл со ссылкой на тебя? фишка в том что этот файл с куском твоего кода планирую выложить в открытый доступ со всем своим кодом ибофриварно.
или могу вставить пару флагов и выкладывать исходники без твоих файлов, а ехе-шники с твоими. я так сделал с паскаль-компилятором для скриптов дабы внутри своей программы писать паскаль программы. - просто автор поставил условие "как есть" а я доводил напильником его код отключая этот sysutils.
Можно, главное чтобы удобно было. Если возможно, укажите в исходниках 3 ссылки из моего 1-го поста. К сожалению пока пишу только под WIN, поэтому sysutils особо не мешает.
Отправлено: 26.05.09 16:41. Заголовок: мне нужна только одн..
мне нужна только одна фишка - поиск и замена одной части символов на другую. задача стоит так: стандартная виндовая дата - ну например dddd dd MMMM (у нас это будет Вторник 26 мая) - надо получить что-то кастомное - ну скажем ВтоРНИК 26 Муя. то есть поиск и замена. самому делать лень, отложил в памяти такую задачу и вот наперся на решение. насчет добавить - нет еще - положил пока библиотеку в общий архив, пусть праной наберется :)
подключил. миленько ну, примерно так получилось :)
кстати попутно решил подсчитать сколько у меня символов (одиночных) в строке и поднял процедуру GetStrCount. посмотрел на код... гхм. а попроще никак не ага? может стоит добавить проверку на поиск одиночного символа - тогда все значительно ускорится. и второе! нафига delete??? это же лишние перетасовки в памяти! зачем дрочить менеждер памяти лишний раз? PCHAR рулит!
ну например так: [code] function GetStrCountEX(AStr, ASubStr: string): integer; var ipos, spos, lenOStr, lenStr: integer; var PStr, PSubStr:Pchar; begin
result := 0; lenOStr := length(AStr); lenStr := length(ASubStr);
PStr:=Pchar(AStr); PSubStr:=Pchar(ASubStr); ipos:=0; repeat if PStr[ipos]=PSubStr[0] then //если первая буква сходится - то проверяем остальные begin Spos:=0; repeat inc(Spos); until (PStr[ipos+Spos]=#0)or(PSubStr[Spos]=#0)or(PStr[ipos+Spos]<>PSubStr[Spos]); if Spos<>lenStr then begin inc(Ipos);//не сошлось - следующий символ end else begin inc(Ipos,Spos); //сошлось - перескакиваем слово inc(result); end; end else inc(ipos); until PStr[ipos+lenStr-1] = #0;//крутим до последнего символа пока искомое слово вообще влезает end; [/code]
ЗЫ. ах, да, может сделать багрепортинг отключаемым с помощью IFDEF?
Отправлено: 29.05.09 22:44. Заголовок: Да, ваша правда. Пок..
Да, ваша правда. Пока не заморачивался с оптимизаций, хочется просто получить законченный инструментарий. Но в ближайшее время воспользуюсьвашим советом!
Все даты в формате GMT
3 час. Активность сегодня: 9
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет