Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 15:29   #1
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию Деление текст на строки.

Хочу разделить текст из RichEdit1->Lines->Strings[0] по строкам по принципу наличия знака \t, то есть если вставить во все позиции исходной строки перед знаком \t, \n. только что то никак
Lazio вне форума Ответить с цитированием
Старый 12.10.2009, 15:35   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Pos`ом дорогой наш, именно Pos`ом...
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 12.10.2009, 15:51   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Не очень понял. Вам нужно в каждой строке перед \t вставить \n? Если так то в цикле проходитесь по всем строкам ищите в каждой строке \t с помощью ф-ии Pos и вставляйте \n с помощью ф-ии Insert
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
   s:string;
begin
 for i:=0 to form1.RichEdit1.Lines.Count-1 do
 if Pos('\t',form1.RichEdit1.Lines[i])>0 then
 begin
 s:=form1.RichEdit1.Lines[i];
 Insert('\n',s,Pos('\t',form1.RichEdit1.Lines[i])-1);
 form1.RichEdit1.Lines[i]:=s;
 end;
end;
Даже если не так с помощью этих ф-ий можно сделать
SERG1980 вне форума Ответить с цитированием
Старый 12.10.2009, 15:53   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
только что то никак
Я бы так делал:
Код:
 TStringList *t=new TStringList;
 t->Delimiter='\t';
 t->DelimitedText=RichEdit1->Lines->Strings[0];
Теперь в "массиве" t разделенные строки должны быть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.10.2009, 20:00   #5
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию

как затем это t вывести на экран?

И ещё вопрос дальше надо будет обрабатывать условия нахождения определенного символа в строке, ну типа в n-ой поозиций стоит у нас гласная и тогда в позицию n+1 ставим знак переноса, вот только я не понимаю можно как но в условии сравнивать массив гласных со строкой? или для каждой гласной своё условие и всё это объединять через || ?

Последний раз редактировалось Stilet; 14.10.2009 в 10:59.
Lazio вне форума Ответить с цитированием
Старый 12.10.2009, 20:39   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Lazio Посмотреть сообщение
И ещё вопрос дальше надо будет обрабатывать условия нахождения определенного символа в строке, ну типа в n-ой поозиций стоит у нас гласная и тогда в позицию n+1 ставим знак переноса, вот только я не понимаю можно как но в условии сравнивать массив гласных со строкой? или для каждой гласной своё условие и всё это объединять через || ?
Используйте множества. Создаете множество гласных и проверяете входит ли символ в n-ой позиции в множество. Если входит, то ставите перенос.
ЗЫ. Если язык русский, то переносы будут расставляться не правильно
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 12.10.2009, 20:42   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ребята тут С++ не забыввайте об этом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.10.2009, 20:47   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ребята тут С++ не забыввайте об этом.
Это нигде не написано . То что он парсит \t, \n и возможно еще прочее сишное , еще не значит, что ему на С++ надо.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 12.10.2009, 21:12   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
RichEdit1->Lines->Strings[0]
а это уже значит.

Цитата:
каждой гласной своё условие и всё это объединять через || ?
так что все таки С
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 12.10.2009 в 21:38.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.10.2009, 19:44   #10
Lazio
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 113
По умолчанию

C++ Builder 6 а теперь с учетом этого переведите что вы мне хотели объяснить))) и прокатит ли сверка enum с AnsiString ?
Lazio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деление |{ot Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 24.03.2009 01:50
Как получить текст из любой строки ListBox Alex_09 Общие вопросы Delphi 2 22.03.2009 13:58
деление строки Joy Паскаль, Turbo Pascal, PascalABC.NET 3 24.01.2009 16:14
Текст в кнопке в 2 строки Elena Компоненты Delphi 18 15.11.2007 23:26
деление natasha Общие вопросы Delphi 6 22.01.2007 12:39