Текущий архив: 2003.06.05;
Скачать: CL | DM;
Вниз
Вопрос по строкам. Найти похожие ветки
← →
qqqqq (2003-05-24 22:11) [0]Вобщем пытаюсь зделать програмку которая осуществяет поиск замену в файлах в указанном каталоге. Вот что сейчас имею ето стандартная форма на ней три Memo почему именно мемо а не едиты спросите вы дак в едиты много не влазит а мне надо текст кусками менять, вобщем собираюсь использовать стандартную процедуру поиска Pos, для етого все строки компонента мемо я загоняю в одну строку и там уже вышеупомянутой функцией ищу то что нужно, но вот проблема когда все строки копируются в одну то служебные символы оттуда убераютя соответственно указатель SelStart я немогу правильно выставить чтоб выделялось то что мне нужно вот не знаю как решить проблему. вот то что уже есть:
var
big, big1, big2 : string;
col, col1, col2 : integer;
i, i1, i2, start, finish : integer;
name_file : string;
rabota : integer;
f: TSearchRec;
find_f: string;
dlyaload: string;
begin
col := memo1.lines.count;
for i := 0 to col do big:= big + memo1.lines.strings[i];
col1 := memo2.lines.count;
for i1 := 0 to col1 do big1:= big1 + memo2.lines.strings[i1];
col2 := memo3.lines.count;
for i2 := 0 to col2 do big2:= big2 + memo2.lines.strings[i2];
start:=pos(big, big1);
finish := memo1.gettextlen;
memo2.setfocus;
memo2.selstart:= start - 1;
memo2.SelLength:= finish;
memo2.seltext:= memo3.text;
end;
ето пока без работы с файлами что посоветуете?
← →
Song (2003-05-24 22:20) [1]Запятые расставь
← →
andrey_pst (2003-05-24 23:31) [2]во, блин !
а на Perle-то не судьба написать ?
← →
qqqqq (2003-05-25 00:18) [3]To: Song
Вощем общий вопрос такой как в одну строку добавить две строки со всеми служебными символами которые в них находятся? Переписывать ето все облом.
To: andrey_pst
Нет не судьба не знаю я перл я и делфи то только неделю назад к себе на ком поставил
← →
jack128 (2003-05-25 00:24) [4]
> Вощем общий вопрос такой как в одну строку добавить две
> строки со всеми служебными символами которые в них находятся?
>
также как если бы в строках не было служебных символов
← →
qqqqq (2003-05-25 00:40) [5]Понимаеш тут смысл в чем что в зависимости от того что выдает функция Pos тоже самое будет и в инструкциях для SelStart тоисть начинать выделение текста с етого момента заканчивать выделение текста оно будет по инструкциям SelLenght а потом етот выделенный текст уже меняется на то на что необходимо его заменить из компонента мемо3, дак вот если поиск производить в одной длинной строке (без етих самых служебных символов) то указатель съезжает что естественно сказывается на том какой текст будет выделен. Вот я и спрашиваю как мне все вместе скопировать так как я делаю не получается, а делаю я так беру переменную присваиваю ей стринг а тотом по очереди добавляю туда строки из мемо. Не выходит если менять допусим из середины текста начиная со второй строги то выделение съезжает на 2 символа назад с 3 строки на 4 символа назад и т.д. вобщем не знаю что и делать
← →
jack128 (2003-05-25 00:47) [6]qqqqq (25.05.03 00:40)
ничего не понял. Почему у тебя в
> одной длинной строке
теряются служебные символы??
← →
qqqqq (2003-05-25 00:51) [7]так какжется я начинаю понимать я текст вместо того чтобы из переменной которую я создяю под мемо из которого буду менять что в нем находится на выделенный сразу беру текст из етого самого мемо наверное проблема тут счас попробую
← →
qqqqq (2003-05-25 01:02) [8]тьфу блин скоко морочился я просто в номерации етих мемо ошибся из зи етого вся путаница, спасибо всем кто откликнулся тема закрыта если она вобще была открытой
← →
Sha (2003-05-25 10:29) [9]Интересно было бы поговорить с автором :)
← →
qqqqq (2003-05-25 21:51) [10]ты о чем?
← →
Sha (2003-05-25 22:33) [11]О паузах между словами.
Любопытно бывает разбирать текст вообще без знаков препинания. Плюс к этому ты, кажется, решил отказаться от заглавных букв :)
По-моему, зря. Мне они помогают как-то структурировать мысли :)
← →
qqqqq (2003-05-25 23:46) [12]А понял. Там кстати насчет того что я перепутал номерацию мемо и то что я потом зделал правильно ето все равно не решило проблему, тоисть всетаки кудато служебные символы уходят. Я пробовал большую строку просто в мемо вывести так и есть там где должны быть переходы на другую строку их нет, из-за етого весь текст становится одной длинной строкой вот может ктото всетаки покскажет как их грамотно копировать без потери служ. символов. Большое спасибо надеюсь здесь все понятно.
← →
Anatoly Podgoretsky (2003-05-26 00:00) [13]Это тяжелое дело расставить знаки препинания, а еще и заглавные буквы - это же совсем не посильно, это же какую голову надо иметь. Но насколько просто писать еще и без пробелов. Вот попробуем:
этотяжелоеделорасставитьзнакипрепинанияаещеизаглавныебуквыэтожесовсемнепосильноэтожекакуюголовунадоиметьнонасколькопростописатьещеибезпробелов
← →
Sha (2003-05-26 01:05) [14]насчет того что ты перепутал нумерацию мемо и то что потом все сделал правильно я понял служебные символы пропадают потому что ты склеиваешь в большую строку строки из мемо в которых нет служебных символов поэтому если ты хочешь их там оставить то проще всего пользоваться свойством текст или самому их приклеивать в большую строку между маленькими а потом просто в мемо вывести теперь конкретно насчет твоего вопроса если я правильно тебя понял то все что тебе требуется для того чтобы текст не становился одной длинной строкой это вставить в свою прогу для преобразования мемо в строку оператор
s:=Memo1.Text;
а для обратного преобразования поставь такой операторMemo1.Text:=s;
при этом служебные символы не должны потеряться желаю удачи АП не прав было трудно наверно потому что пробелы ставил
← →
qqqqq (2003-05-26 10:15) [15]Понимаеш если сделать так как ты говориш тоисть присвоить переменной весь текст мемо, то функция Pos найти в нем ничего не сможет поскольку работает только со строками.
← →
Smithson (2003-05-26 10:26) [16]Memo1.Text + F1
← →
qqqqq (2003-05-26 10:31) [17]To: Smithson
Извини можеш немного поподробнее?
← →
Amoeba (2003-05-26 10:33) [18]> qqqqq (26.05.03 10:15)
> Понимаеш если сделать так как ты говориш тоисть присвоить
> переменной весь текст мемо, то функция Pos найти в нем ничего
> не сможет поскольку работает только со строками.
Св-во Memo.Text как раз имеет тип String, и переменная того же типа. Так почему же функция Pos (работающая только со строками) не будет осуществлять поиск в строке?
← →
qqqqq (2003-05-26 10:41) [19]Нет ту т мне кажется если не ошибаюсь мемо ето массив строк. Прога которая мне нужна она имеет три мемо, 1 - это текст который надо найти, 2- это текст на который нужно заменять, 3 - ето сам в текст в котором происходят все действия, именно мемо я выбрал потому что мне нужно менять текст большими кусками, тоисть допустим 3 строки сразу. Афункция Пос при таком раскладе Memo1.text выдает ошибку типа (Incompatible types "String" and "TString")
← →
Sha (2003-05-26 11:58) [20]ну так надо посом искать не в мемо.текст а в строке куда сначала надо этот текст загнать
← →
qqqqq (2003-05-26 17:29) [21]Вот правильно так сделать я и хотел, только вот когда ты все строки лепиш по очереди в одну, то из нее уходят символ переходи и символ возврата каретки, яуже в принципе как ето решить знаю осталось только попробовать счас под рукой компа просто с Делфой нет
col := memo1.lines.count;
for i := 0 to col do big:= big + memo1.lines.strings[i]+ chr(13)+chr(10); вот попробую может сработает
← →
qqqqq (2003-05-26 17:35) [22]только в мемо.текст оно без проблем строку ищет, а вот кусок текста никак поетому и понадобилась необходимость все в одну строку лепить. Тоисть поподробнее:
f:= memo1.text;
d:= memo2.tetx;
pos(f, d);
непойдет поскольку f должна быть строкой
← →
Sha (2003-05-26 17:55) [23]а кто у тебя d и f если не строки то не пройдут два присваивания перед пос а если строки то и пос должна работать
← →
qqqqq (2003-05-26 18:20) [24]если есть желание то попробуй кинь два мемо на форму, кнопку, и edit.На онклик кнопки запиши такое:
f, d, g: string;
h: integer;
begin
f:= memo1.text;
d:= memo2.text;
h:= pos(f, d);
g:= floattostr(h);
edit1.text:= g;
тут если что не то там поправь точно не помню какой тип поса, но ето не столь важно мемо там на всякий случай(а вдруг получится) и end; еще в конце
← →
qqqqq (2003-05-26 18:44) [25]тоисть на всякий случай там едит в которого выведется значение первого символа в D если получися конечно, у меня сейчас под рукой делфи нет просто
← →
Sha (2003-05-26 21:02) [26]немного практики и все получится как у меня :)
← →
qqqqq (2003-05-26 23:54) [27]что получилось а как у тебя получилось можеш расказать?
← →
qqqqq (2003-05-27 00:03) [28]е мае и вправду получилось блин как долго я ето пытался зделать огромное тебе спасибо
Страницы: 1 вся ветка
Текущий архив: 2003.06.05;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.009 c