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

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 23.06.2008, 20:22   #1
Sanek_ntsk
Форумчанин
 
Регистрация: 08.11.2007
Сообщений: 91
Репутация: 5
По умолчанию Чтение текста до ...

Как прочитать слова в edit до символа ';'? Помогите пожалста
Sanek_ntsk вне форума   Ответить с цитированием
Старый 23.06.2008, 20:40   #2
Altera
Одинокий кодер
Профессионал
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
Репутация: 675

skype: ak_altera
По умолчанию

Код:
var
s: string;
c, l: integer;
begin
   l := length(edit1.text);
   s := '';
   for с := 1 to l do
   if edit1.text[c] <> ';' then break else s := s + edit1.text[c];
end;
Ну вот вроде...
Altera вне форума   Ответить с цитированием
Старый 23.06.2008, 20:41   #3
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Адрес: Minsk City
Сообщений: 224
Репутация: 256
По умолчанию

Код:
var p:integer;
str:string;
begin
p:=pos(';',edit1.Text);
if p=0 then p:=length(edit1.text);
str:=copy(edit1.Text,1,p);
end;
считывается до ; включительно.
Если символ ; не надо включать, то делаешь
if p=0 then p:=length(edit1.text)
else dec(p);

Последний раз редактировалось NikLik; 23.06.2008 в 20:44.
NikLik вне форума   Ответить с цитированием
Старый 23.06.2008, 20:41   #4
Makarov
Форумчанин
 
Аватар для Makarov
 
Регистрация: 03.01.2008
Адрес: В городе
Сообщений: 102
Репутация: 3
По умолчанию

Рассматривать строку как массив символов и проверять каждый символ не равен ли он ';'. Пока не равен инкрементировать счетчик. А потом используем функцию COPY.
__________________
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Makarov вне форума   Ответить с цитированием
Старый 23.06.2008, 20:50   #5
Sanek_ntsk
Форумчанин
 
Регистрация: 08.11.2007
Сообщений: 91
Репутация: 5
По умолчанию

Ещё один вопрос: у меня есть текст с разделителями:
Семья;Мама;123456
Семья;Папа;654321
Друзья;жека;258741
Девки;Лена;369741
и т.д.
Как сделать так, чтобы в комбобоксе создавались группы(первое слово до ';') но не создавались несколько раз одни и те же, и по выбору в комбобоксе отражались имена группы? Очень нужно. Заранее спасибо
Sanek_ntsk вне форума   Ответить с цитированием
Старый 23.06.2008, 21:15   #6
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Адрес: Minsk City
Сообщений: 224
Репутация: 256
По умолчанию

Код:
procedure tform1.combo(filename:string;combobox:tcombobox);
var n:byte;
f:textfile;
s,addstr:string;
mult:boolean;
begin
assignfile(f,filename);
reset(f);
combobox.Clear;
readln(f,s);
while not(eof(f)) do begin
mult:=false;
readln(f,s);
addstr:=obr(s);
for n:=1 to combobox.Items.Count do
if combobox.Items[n-1]= addstr then mult:=true;
if not mult then
combobox.Items.Add(addstr);
end;
closefile(f);
end;


function tform1.obr(str:string):string;
var p:byte;
begin
p:=pos(';',str);
if p=0 then p:=length(str)
else dec(p);
result:=copy(str,1,p);
end;
Использование:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
combo('123.txt',ComboBox1);
end;
Напиши, что ты хочешь сделать в целом? Интересно стало)

Последний раз редактировалось NikLik; 23.06.2008 в 22:20.
NikLik вне форума   Ответить с цитированием
Старый 23.06.2008, 21:59   #7
Sanek_ntsk
Форумчанин
 
Регистрация: 08.11.2007
Сообщений: 91
Репутация: 5
По умолчанию

ещё вопрос: а как прочитать символы между знаками ";"? т.е General;123456789;bullet; нужно 123456789 занести в переменную S
Sanek_ntsk вне форума   Ответить с цитированием
Старый 23.06.2008, 22:17   #8
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Адрес: Minsk City
Сообщений: 224
Репутация: 256
По умолчанию

функция posex(добавь в uses модуль strutils)--тоже самое, только есть возможность указать, с какого символа искать
например так:
p:=posex(';',str,1);
s:=copy(str,p+1,posex(';',str,p+1)-p-1);
выделяет слова "Мама","Папа", "Жека", "Лена" из того примера, что ты дал

P.S только что нашел ошибку в том коде, что выше
Не combobox.Items.Add(obr(addstr)); , а combobox.Items.Add(addstr);
И ты, кстати, не ответил на мой вопрос

Последний раз редактировалось NikLik; 23.06.2008 в 22:26.
NikLik вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и чтение... Decibel Общие вопросы Delphi 12 17.06.2008 23:08
Чтение subsonic Общие вопросы Delphi 1 30.05.2008 08:06
Чтение строки... prizrak1390 Общие вопросы Delphi 2 28.02.2008 12:18
чтение файла Arteom Общие вопросы Delphi 6 27.08.2007 18:15
чтение файла vicvtor Общие вопросы Delphi 4 27.11.2006 13:26


07:07.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.