Здравствуйте !
> Привет Vic!
> Я сейчас поясню некоторые моменты вашего примера, как они работали в Win98
> >Вот пример :
>
> >int nLineLength, nLineCount = m_wndRichEdit.GetLineCount();
> Эта функция возвращает ощее количество строк считанного текста т.е
> . работает
> правильно
> > CString strText, strLine;
>
> > for(int i = 0; i < nLineCount; i++)
> > {
> > nLineLength = m_wndRichEdit.LineLength(i);
> Данная функия возвращала мне не количетво считанных знаков, а количетво
> знакомест(зависила от CRect строки инициализации)
Ясно... У вас, наверно, просто у ричедита не стоял стиль ES_AUTOHSCROLL,
то есть возникал эффект 'автопереноса' строк.
> > m_wndRichEdit.GetLine(i, strText.GetBufferSetLength(nLineLength),
> >nLineLength);
> Считывал я практически также,со следующим нюансом:
> LPCTSTR strl;
> strl= strText.GetBufferSetLength(nLineLength);
> и уже далее m_wndRichEdit.GetLine(i,strl,nLineLength);
> strText=(LPCTSTR)strl;
> но думаю это одно и тоже
> > strText.ReleaseBuffer();
> int ct=strText.Find("с именем",0); ищу ключевое слово за которым искомый
> текст работет отлично
> int cn=strText.GetLength();Функция работает как попало закономер
> ности я не
> обнаружил в ХР работет безупречно
> далее функциями strText.Ringth(cn-ct); Должны отрезать левую часть строки
> но так как cn неправильно вычесена получаем неверный результат
> strText.Left(ct); отрезаем правую часть строки т.к не используется cn
> работает нормально
> > strLine.Format("Line %d : %s", i, (LPCTSTR) strText);
>
> > MessageBox((LPCTSTR) strLine);
> }
Хорошо - тогда другой вариант :
m_wndRichEdit.GetWindowText(strText);
strText.Replace("\r\n", "\n");
strText.Replace('\r', '\n');
int nTextLen = strText.GetLength();
for(int nNextPos, nBegPos = 0;
nBegPos < nTextLen;
nNextPos ++, nBegPos = nNextPos)
{
nNextPos = strText.Find('\n', nBegPos);
if(nNextPos < 0)
nNextPos = nTextLen;
strLine = strText.Mid(nBegPos, nNextPos - nBegPos);
MessageBox(strLine);
}
Это стопудово работать как надо будет. Только вот строки :
strText.Replace("\r\n", "\n");
strText.Replace('\r', '\n');
они корректируют символы перевода строки, если вдруг вставлен
текст с какими либо странными последовательностями \r и \n
не на все случаи рассчитаны. Но весь код будет работать в 100%
случаев.
> > Насчет инициализации - могу понадергать из MSDN описания стилей и
> >расширенных
> >стилей этого контрола. Это, вобщем то все что там может быть особенного.
> >Надо ?
> Я думаю надо
>
>
>
> >HINSTANCE ShellExecute(
> > HWND hwnd,
> > LPCTSTR lpOperation,
> > LPCTSTR lpFile,
> > LPCTSTR lpParameters,
> > LPCTSTR lpDirectory,
> > INT nShowCmd
> >);
> Завтра попробую правда конец месяца напрягают со всякими отчетами
>
> Владимир
Ок, тогда в близайшее время напишу.
Vic.
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.prog.prog&email=
http://subscribe.ru/ mailto:ask@subscribe.ru