Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разрезать текст в Мемо, Работа с текстом в Мемо 
:(
    Опции темы
Canada
Дата 10.2.2009, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Здравствуйте. У меня такая проблема:
В memo1 помещен текст. Есть число К. Оно[число К] задается пользователем или рандомом(это не важно). Требуется, Пробежаться по тексту в Мемо до символа!(включая запятые, пробелы и т.д.) до символа К, посмотреть, где ближайшая к нему "."(точка). Вырезать от начала текста до этой точки весь текст и сохранить его в Файл txt. И так весь текст. Т.е. надо весь текст порезать курсками указанного К и сохранить в файлы txt с рандомными именами. Переводы строк не учитываются, просто пропускаются.

И так, что имеем на момент написания поста. А имеею я код модератора соседнего форума lmikle (За что ему большое спасибо!)
Такого вида:
Получение строки для работы:
Код

function GetStr(AMemo : TMemo) : String;
var
  I : Integer;
begin
  Result := '';
  For I := 0 To AMemo.Count-1 Do
    Result := Result + AMemo.Lines[i];
end;


Разбивка

Код

S := GetStr(Memo1);
While Length(S) > K Do
begin
  F := True;
  For I := K To Length(S) Do
    If S[i] = '.' Then
      Begin
        Memo2.Lines.Add(Copy(S,1,I));
        S := Copy(S,I+1,Length(S) - I +1);
        F := False;
        Break;
      End;
  If F Then Break;
end;
If S <> '' Then Memo2.Lines.Add(S);


Но данный код у меня не работает. Вернее работает, но криво, что-то делит и как-то сохраняет, но явно не так как надо.

По условию задачи надо чтобы условный текст в Мемо1 был распилен на куски размером К символов и в случаях, когда это К выпадает не на конец предложения, чтобы не рвать текст на полуслове кусками и не уродовать тем самым, надо добраться до первой "."(точки) Ну чтобы предложение было законченным. Ведь предложения точкой заканчиваются. Вот такое задание. Случаи, когда предложение заканчивается !, ? или иными знаками не рассматриваются.

Буду благодарен тем, кто пояснит и поможет как это все реализовать, я не спец в программировании пока. Заранее всех благодарю за помощь и советы.

Это сообщение отредактировал(а) Canada - 10.2.2009, 00:07
PM MAIL   Вверх
Poseidon
Дата 10.2.2009, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Вообще не понял зачем функция GetStr, если все, что она делает, можно взять из AMemo.Text
 
Цитата(Canada @  10.2.2009,  00:04 Найти цитируемый пост)
Но данный код у меня не работает. Вернее работает, но криво, что-то делит и как-то сохраняет, но явно не так как надо.
А у меня код работает именно так, как описано. Есть неточности в коде, вроди как не AMemo.Count, а AMemo.Lines.Count и переменные не обьявлены, но это не критично.

Берем кусок К, смотрим дальше до точки и разделяем. Что не получается, конкретно?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Canada
Дата 10.2.2009, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Он у меня все время ко всем кускам добавляет "первый кусок". Т.е. Взяла программа текст, в первый проход выделила кусок и сохранила его. Пошел второй проход и к правильно выделенному, она лепит еще и первый. К 3-ему она лепит первые 2, к 4-му первые 3. А это ведь не правильно.

Это сообщение отредактировал(а) Canada - 10.2.2009, 14:32
PM MAIL   Вверх
Canada
Дата 10.2.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 9.2.2009

Репутация: нет
Всего: нет



Вах, нащОль рэшениэ!
Там мемо2 надо чистить каждый раз в том же цикле..Какой йа тупой бил..
Всем спасибо!
PM MAIL   Вверх
morpheyushka
Дата 10.2.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 2
Всего: 8



А тему закрыть религия не позволяет? smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0602 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.