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

Вниз

Определение длины видимого текста в Memo   Найти похожие ветки 

 
DeepProg   (2004-07-05 22:15) [0]

В Memo загружается текст из txt файла в кодировке Windows. Текст из Memo передается в переменную s типа string.
Length(s): Unaccessible value, поэтому при попытке остановить, например, поиск слова по достижении конца текста, ничего не выходит, и поиск продолжается, находя невидимые символы.
Вопрос: как ограничить либо длину текста в Memo, либо длину string до последнего видимого символа.
Лучше бы, конечно, ограничить строку.


 
KilkennyCat ©   (2004-07-06 01:10) [1]

Честно говоря, я не понял:
1) Почему length(s): Unaccessible value ? - код приведите.
2) Откуда у Вас в txt файле в кодировке Windows невидимые символы?
3) Как может поиск найти невидимые символы? Точнее, что Вы ищите? Слово из невидимых символов?
4) Зачем текст передается в переменную? только для поиска?
5) Разве у Мемо нет свойство, задающее ограничение длины?
6) Разве ограничение string до последнего видимого символа не может подразумевать их наличие в середине?

Будет код - будет ответ. А пока создается впечатление, что Вам лучше прочитать книжку. С самого начала.


 
DeepProg   (2004-07-06 02:54) [2]

RTFM - вы правы... Пока что этот форум + несколько других сайтов мне ее заменяют.
Сначала скажу, что невидимые символы перестали мешать(не проявляются), при том, что принципиальных изменений в код чтения из Memo внесено не было и ограничение поиска(вот разве что оно стало как бы двойным: При промотре текста вообще + при Получении слова) успешно осуществляется по Length(Memo1.Text).
1) для Watch, но не для Inspect, т.е. определнное значение все-   таки доступно.
 Вот эта функция, запускаемая в ButtonClick, первоначально, при каждом новом нажатии кнопки, после того, как видимый текст(латиница) закончился, продолжаала находить символы(крякозябры, кириллицу, специальные), сейчас этого не происходит, но что могло быть тогда, думаю было бы полезно знать
---------------------------------------------------------
//*******************************************************
{ в Source загоняется текст: Memo1.Text
   CharPos: начинается с 1, внутри меняется, обеспечивая проход по всему тексту
}
//*******************************************************
var      SepSymb: set of Char= [" ",#10, #13, #0]
...

function TfmTxtProc.GetWord(Source: String; var CharPos: integer): string;
var w:string;
   ch:Char;
begin
w:="";
ch:="z";
while (CharPos<=Length(Source)) and not(ch in SepSymb)
       or (w="")  do
  begin
    ch:=Source[CharPos];
    inc(CharPos);
    if not(ch in SepSymb) then
     w:=w+ch;
  end;
Result:=w;
end;

----------------------------------------
2) Я не утверждаю, что они именно в файле, возможно за их появление отвечает Memo.
3) см. код. Меня интересуют только видимые символы.
4) уже не передается
5) есть, только длину эту заранее узнать, почему-то не удавалось.
6) предполагается текст набитый user"ом в notepad. Так что нет, причем этого никогда и не происходило.


 
Palladin ©   (2004-07-06 03:18) [3]

1) Нужно быть проще

Function GetWord(Const Source:String;Var CharPos:Integer):String;
Begin
Result:="";
While (CharPos<=Length(Source)) and not (Source[CharPos] in SepSymb) Do
 Begin
  Result:=Result+Source[CharPos];
  Inc(CharPos);
 End;
While (CharPos<=Length(Source)) And (Source[CharPos] in SepSymb) Do Inc(CharPos);
End;

2) "Невидимые" символы называются управляющими. Memo ничего само по себе ничего не добавляет.

Проблема как всегда в подходе...


 
©   (2004-07-06 03:27) [4]

Что Вам надо сделать с текстом в Memo?
Если честно я так и не понял.
-найти символ
-найти слово
-исключить символ(ы) с текста
-иное.
Начнем с этого.


 
TUser ©   (2004-07-06 07:45) [5]


> "Невидимые" символы называются управляющими

Подозреваю, что в данном случае имеется ввиду видимый текст. Невидимые символы - соотв. те, которые ниже/выше. Хотя не знаю.


 
Delphin ©   (2004-07-06 13:17) [6]

Memo1.MaxLength



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

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

Наверх





Память: 0.47 MB
Время: 0.031 c
3-1088102643
Колбасьев
2004-06-24 22:44
2004.07.18
dbf-файл с ntx-индексом


4-1086435171
ev
2004-06-05 15:32
2004.07.18
MS TAPI


14-1088197597
Anatoly Podgoretsky
2004-06-26 01:06
2004.07.18
Веселая сегодня пятница


14-1088367069
Ломброзо
2004-06-28 00:11
2004.07.18
Немного о шарлатанах


14-1088403217
ИМХО
2004-06-28 10:13
2004.07.18
Десять негритят Агаты Кристи





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