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

Вниз

Как узнать, есть ли на строке символ   Найти похожие ветки 

 
Olfi   (2002-03-06 18:44) [0]

или... не знаю, как он называется, - когда Enter в конце строки жмёшь.
Я пробовал так:

if pos (#13, memo1.lines[1])<>0 then memo1.lines.add("Yes!");

Не получается так.


 
Val   (2002-03-06 18:58) [1]

#10#13
конец строки, перевод строки


 
Anatoly Podgoretsky   (2002-03-06 20:05) [2]

Дело в том, результат в данном случае string, в котором нет этих символов.


 
valery_f   (2002-03-06 20:08) [3]

Вообще-то Memo бъет текст на строки именно по "символам абзаца", и через memo1.lines[N] их не найдешь.

2Val: Вообще-то #13#10 (обычно так :)


 
McSimm   (2002-03-06 20:21) [4]

А что ты хотел выяснить по наличию этих символов?
Может тебе совсем не это надо?


 
Delirium   (2002-03-06 20:28) [5]

Хм, может "символ абзаца" это #9 - Tab, то есть ?


 
McSimm   (2002-03-06 20:34) [6]

>Delirium © (06.03.02 20:28)
see:
>когда Enter в конце строки жмёшь.


 
Delirium   (2002-03-06 20:45) [7]


> McSimm

Ну я просто пытался понять - зачем искать #13 в memo1.lines[1],
вот и предположил - не то ищет.


 
Olfi   (2002-03-06 20:45) [8]

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

А как тогда узнать, заканчивается ли абзац на данной строке?


 
Anatoly Podgoretsky   (2002-03-06 20:46) [9]

valery_f (06.03.02 20:08)
Вообще то нет, если включен режим Word Wrap, в этом случае бьет по границе окна с учетом слов, а автора именно это и интересует, иначе вообще вопроса бы не было - одна строка/один абзац.
Вопрос у него корректно поставле, только не понятно щачем это нужно, возможно есть другое решение.


 
Delirium   (2002-03-06 20:47) [10]

Может тебе Memo1.Text сравнивать ?


 
Olfi   (2002-03-06 20:53) [11]

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

А как тогда узнать, заканчивается ли абзац на данной строке?


 
McSimm   (2002-03-06 21:01) [12]

Не выйдет ничего.
В любом случае все строки в Memo оканчиваются #13#10 (если смотреть Memo.Text)
Поэтому одна строка - один "абзац" выполняется всегда.
Т.е. понятия "абзац" просто нет.


 
Anatoly Podgoretsky   (2002-03-06 22:07) [13]

Нет понятие абзац есть, попробуй менять ширину окна и увидишь.
Вот только добраться через свойство Lines не получится.


 
McSimm   (2002-03-07 10:36) [14]

Виноват. Повторная проверка показала, что абзацы есть :)
(Перед этим, почему-то, я обнаружил #13#10 во всех Lines[I])

В принципе поставленная задача решается несложно.
Просматриваем все Lines[I] от 0 до Count-1, при этом следим за смещением в Memo.Text. Только форматировать надо не сразу, а после всего прохода. Например форматируя в промежуточный TStringList.





 
McSimm   (2002-03-07 10:58) [15]

Как компенсация за неправильный ответ :)
Вот работающий пример.

Осталось реализовать функцию JustifyFormat(S);

procedure TForm1.Button1Click(Sender: TObject);
var I, Ofs: Integer;
SL: TStringList;
S: String;
begin
SL := TStringList.Create;
try
Ofs := 1;
for I := 0 to Memo1.Lines.Count - 1 do
begin
S := Memo1.Lines[I];
Ofs := Ofs + Length(S);
if Ofs > Length(Memo1.Text) then Raise Exception.Create("Странно...");
if Memo1.Text[Ofs] = #13 then
begin
Inc(Ofs);
if Memo1.Text[Ofs] = #10 then Inc(Ofs);
end else
S := JustifyFormat(S);
SL.Add(S)
end;
Memo1.Lines := SL
finally
SL.Free
end
end;



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

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

Наверх





Память: 0.47 MB
Время: 0.006 c
3-66775
tovSuhov
2002-02-21 10:58
2002.03.21
Необходим ли первичный ключ?


1-66936
Man-In-Red
2002-03-06 21:51
2002.03.21
Как в label2 вставить текст с Label1 до слова ‘Конец’, а в Label3 после этого слова?


3-66782
Andrey V. Zuev
2002-02-22 14:05
2002.03.21
Передача переменных на MSSQL7 через ADOQuery


1-66814
kserg@ukr.net
2002-03-07 10:49
2002.03.21
Срочно- как узнать изменился ли TEdit.Text ?


1-66850
DR
2002-03-05 14:36
2002.03.21
Как прервать загрузку TWebBrowser а на 30 процентах





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