Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 12.12.2007, 11:51   #1
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
Вопрос считать текст из memo - посимвольно

Вопрос простой до не приличия, но всё таки у мну из-за этого ступор..
Вот мне нужно считать текст из MEMO- ПОСИМВОЛЬНО!!! ТОЕСТЬ СЧИТЫВАТЬ ТЕКСТ ПО 1-му символу, до знака пробел ' '.
Я организовал всё так
while not eoln(memo1.text) do begin
......
if c=' 'then break
else
S:=c+c;
........
мне главное чтобы цикл работал, а то возникает ошибка в while not.....
компилер пишет мол НЕСОВМЕСТИМОСТЬ ТИПОВ
ПОМОГИТЕ ПЛИЗ!!!!!!!!!!!
ЗА РАНЕЕ СПАСИБО
prizrak1390 вне форума Ответить с цитированием
Старый 12.12.2007, 12:10   #2
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 27.11.2007
Сообщений: 235
По умолчанию

<<Вот мне нужно считать текст из MEMO- ПОСИМВОЛЬНО!!! ТОЕСТЬ СЧИТЫВАТЬ ТЕКСТ ПО 1-му символу, до знака пробел ' '.>>

Я немного непонял, а можно немного точнее, ты вводишь в мемо текст и тебе нужно... что? Вывести этот текст в другом мемо, только по символам? то есть чтоб между каждой буквой стоял пробел??
Gauss вне форума Ответить с цитированием
Старый 12.12.2007, 12:11   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,261
По умолчанию

for i := 1 to Length (Memo1.Text) do
Sibedir вне форума Ответить с цитированием
Старый 12.12.2007, 14:34   #4
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
Хорошо

А легче ещё:

s:string; //Та строка
Pos(' ',s);

Всё. И ты знаешь позицию пробела в своеё строке, дальше делай чо хош с этой строкой
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 12.12.2007, 20:52   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,261
По умолчанию

Ну тада так
Код:
i := Pos (' ', Memo1.Text);
if i > 1 then s := Copy (Memo1.Text, 1, i);
Просто человек просил именно с циклом помочь. Кто знает. Может ему именно цикл нужен.
Sibedir вне форума Ответить с цитированием
Старый 12.12.2007, 23:27   #6
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
По умолчанию CRC

СПАСИБО!!!!!
но мне не нужно искать пробел и в тексте...мне нужно другое
Принцип работы таков...
Считываем по символьно текст из MEmo1 до знака пробел. Как только мы наткнулись на пробел то прерываем работу цикла и считанные символы объединяем,таким образом получив слово. Затем это слово передаётся на обработку и т д....как только слово прошло обработку, мы продолжаем считывать текст из мемо1 до следующего пробела....
Вот так вот...
prizrak1390 вне форума Ответить с цитированием
Старый 13.12.2007, 02:14   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну тогда вот так:
Код:
tmp:=''; //обнуляем строку результата
for i:=1 to Length(Memo1.Text) do
begin
if Memo1.Text[i]<>' ' then  //если не пробел, добавим символ в строку
tmp:=tmp+Memo1.Text[i] else //если наткнулись на пробел
begin
Myproc(tmp); //выполняем что-то с полученной строкой
tmp:=''; //снова обнуляем строку и сначала...
end;
end;
mihali4 вне форума Ответить с цитированием
Старый 13.12.2007, 13:45   #8
prizrak1390
-=PriZraK=-
Форумчанин
 
Аватар для prizrak1390
 
Регистрация: 12.12.2007
Сообщений: 399
По умолчанию

Спасибо за код...только вот он не работает.
Причина в том, что он считывает (i) количество раз первый символ в введённой строке...Например если ввести 12345 то он мне пять раз покажет 1 ,,,я не пойму в чем дело, вернее дело в memo1.text[i]<<если I заменить на например 3 то мы получим пять раз цифру 3 и т д. Так вот дело сново в цикле))))))) я пробовал всё виды Repeat,while,for... и тож самое...мож я чет пропустил??? или может есть другой вариант?!?
prizrak1390 вне форума Ответить с цитированием
Старый 13.12.2007, 15:41   #9
GIO
Пользователь
 
Регистрация: 20.11.2007
Сообщений: 16
По умолчанию

работает по-любому...
GIO вне форума Ответить с цитированием
Старый 13.12.2007, 17:39   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ошибка не в этом коде, а скорее там, где выводятся данные.
puporev вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст HTML документа в Memo Delpinist Компоненты Delphi 9 09.09.2009 13:19
напечатать текст из Memo Sanek777 Общие вопросы Delphi 1 30.08.2008 21:25
(Memo) на текст D-mon БД в Delphi 4 06.06.2008 11:22
как качнуть из тегов текст в memo Лёка Работа с сетью в Delphi 4 03.02.2008 20:46
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS