![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Помогите разобраться с кодом. В memo1 находится такой текст:
Цитата:
Цитата:
|
#2
|
||||
|
||||
![]() Попробуй так:
Код:
Memo2.Text := StringReplace(Memo1.Text, ' ', #13#10, [rfReplaceAll]); |
#3
|
|||
|
|||
![]() Вот решил. Здесь при нажатии на кнопку текст из Memo1 копируется построчно в Memo2
Код:
procedure TForm1.Button1Click(Sender: TObject); var s2:String; s:String; i,j:integer; begin try s:=memo1.Text; s2:=''; i:=1; while (i<=length(s)) do begin if s[i]<>' ' then begin s2:=s2+s[i]; end; if s[i]=' ' then begin Delete(s,1,i); if (s2<>'') then memo2.Lines.Add(s2); s2:=''; i:=0; end; inc(i); end; memo2.Lines.Add(s); except on e:Exception do end; end; |
#4
|
|||
|
|||
![]() Код:
var i: integer; begin Memo2.Lines.Text := WrapText(StringReplace(Memo1.Lines.Text, #13#10, ' ', [rfReplaceAll]), #13#10, [' '], 0); for i:=0 to Memo2.Lines.Count-1 do Memo2.Lines[i] := TrimRight(Memo2.Lines[i]); //убираем пробелы в конце строк, который получились из-за WrapText end; Но вариант ryderx34 короче ![]() Последний раз редактировалось Assistant, 20.02.2011 в 16:58. |
#5
|
|||
|
|||
![]() Всем спасибо за ответы. Завтра попробую и отпишусь работает ли. Только мне нужно будет это делать автоматом, а не при нажатии кнопки. Эта операция как бы будет одной из многих. При нажатии кнопки будет отсеиваться текст из файла к такому как в первой цитате, а уж потом копироваться для последующей обработки в мемо2. А после мемо2 уже будут проводится дальнейшая обработка с текстом, как к примеру сколько раз каждое слово встречается в тексте в мемо2.
|
#6
|
|||
|
|||
![]() Странно, но ни один из предложенных методов не работает. В первом случае получаем вот такую ошибку, хотя мемо2 прописал в unit2.pas как Memo2: TMemo; :
Цитата:
во втором случае получаю такой текст, что немного не подходит - нужно по одному слову в каждую строчку: Цитата:
в третьем случае тоже получаю ошибку, какую ещё не разобрался до конца... ![]() |
#7
|
|||
|
|||
![]() Прошу прощения, немного не те комманды в примере но это сути не меняет - шаблон ввода один и тот же для разного текста..
|
#8
|
||||
|
||||
![]() Цитата:
ryderx34 вполне нормальное и самодостаточное. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
![]() Ну я уже не настолько ламер, хотя конечно не сильно разбираюсь в делфи )) мемо2 на форму добавил в первую очередь и это я и имел ввиду когда написал что прописал в unit2.pas как Memo2: TMemo; Может сам компилятор клинит. Ладно попробую ещё раз...
|
#10
|
|||
|
|||
![]() И всё-таки решение не правильное. Вот скриншот , чтобы было более убедительно:
|
#11
|
||||
|
||||
![]() Вообще-то судя по скрину, у вас разделителями могут быть не только пробелы. Явно видно, что там табуляция а не пробел, а посему тогда так:
Код:
Memo2.Text := StringReplace(Memo1.Text, #32, #13#10, [rfReplaceAll]); Memo2.Text := StringReplace(Memo1.Text, #8, #13#10, [rfReplaceAll]); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
|||
|
|||
![]() Странно, теперь вообще без изменений - просто копирует как в мемо1... Не могу загрузить скрин, почему-то не открывается окно загрузки файлов на форуме..
|
#13
|
|||
|
|||
![]() Вот, вроде заработал форум...
|
#14
|
|||
|
|||
![]() Цитата:
Еще рекомендовал бы заменить в файле 1.txt все табуляторы одиночным пробелом и пробелы которых больше одного тоже на одиночный пробел, тогда код Memo2.Text := StringReplace(Memo1.Text, ' ', #13#10, [rfReplaceAll]) работает, я у себя проверил. Последний раз редактировалось Михалыч, 22.02.2011 в 00:14. |
#15
|
||||
|
||||
![]() Я тоже кое-что накосячил. С учетом повторов и других символов так получится:
Код:
Memo2.Text := Memo1.Text; while Pos(#32#32,Memo2.Text) > 0 do Memo2.Text := StringReplace(Memo2.Text, #32#32, #32, [rfReplaceAll]); while Pos(#9#9,Memo2.Text) > 0 do Memo2.Text := StringReplace(Memo2.Text, #9#9, #9, [rfReplaceAll]); Memo2.Text := StringReplace(Memo2.Text, #32, #13#10, [rfReplaceAll]); Memo2.Text := StringReplace(Memo2.Text, #9, #13#10, [rfReplaceAll]); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 22.02.2011 в 02:38. |