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

Вниз

Вопрос по строкам.   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.01 c
14-13402
SPeller
2003-05-16 16:26
2003.06.05
Нужен MPEG-4 или DivX encoder


1-13256
Boris K.
2003-05-22 19:55
2003.06.05
Проблема с Gauge и копированием файлов в XP.


3-13026
Zn
2003-05-16 13:02
2003.06.05
Передача параметра в представление в Local SQL.


1-13278
TuZ
2003-05-23 23:43
2003.06.05
Иконки из exe-шника


1-13219
dfgdfgsdg
2003-05-26 23:08
2003.06.05
Активация формы?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский