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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2010, 22:37   #1
aleksandr278
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 35
По умолчанию Вывод текста в компонент Label

Подскажите пожалуйста начинающему, есть текстовый документ например 100:200 разделенные двоеточием.
Как можно вывести значение 100 в Label1, а 200 в Label2.
А то я совсем запутался.
Я в этом деле новичок
aleksandr278 вне форума Ответить с цитированием
Старый 21.03.2010, 22:49   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Через Delimited в TStringList подойдет если в разделяемом тексте нету пробелов, для 100:200 подойдет...
Код:
var
  T:TStringList; // обьявляем TStringList в переменной T
begin
  T:=TStringList.Create; // создаем TStringList
  T.LoadFromFile('d:\1.txt'); // файл, в котором находиться "100:200"
  T.Delimiter := ':'; // разделитель
  T.DelimitedText := T.Text; // разделяем текст и получаем куски
  Label1.Caption:=T[0]; // первый кусок в Label1
  label2.Caption:=T[1]; // второй кусок в Label2
  T.Free; // освобождаем TStringList
Через Copy/Pos, пойдет и для "100:200" (текста без пробела) и для текста который имеет пробел...
Код:
var
  T:TStringList; // обьявляем TStringList в переменной T
begin
  T:=TStringList.Create; // создаем TStringList
  T.LoadFromFile('d:\1.txt'); // файл, в котором находиться "100:200"
  Label1.Caption := Copy(T.Text, 1, Pos(':', T.Text) - 1); // первый кусок от 1 символа и до ":"
  Label2.Caption := Copy(T.Text, Pos(':', T.Text) + 1 , Length(T.Text)); // второй кусок от ":" и до конца
  T.Free; // освобождаем TStringList
end;

Последний раз редактировалось W0LF; 21.03.2010 в 22:56.
W0LF вне форума Ответить с цитированием
Старый 21.03.2010, 23:02   #3
aleksandr278
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 35
По умолчанию

Все работает отлично. Спасибо.
А если текстовый файл состоит из трех значений и более, то каким способом выводить.
Например в label1 первые два, а в label2 остальное,
И что то у меня не получилось в label3 не чего вывести.
Я в этом деле новичок

Последний раз редактировалось aleksandr278; 21.03.2010 в 23:06.
aleksandr278 вне форума Ответить с цитированием
Старый 21.03.2010, 23:25   #4
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Непонял, дайти пример записи...
W0LF вне форума Ответить с цитированием
Старый 21.03.2010, 23:48   #5
aleksandr278
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 35
По умолчанию

Сам запутался что мне надо.
Надо так: например в файле записано :Имя:100:200:300:400:500 и т.д.
Нужно чтоб в Label1 выводилось имя, в Label2 - 100, с этим я разобрался все работает, теперь надо чтоб в Label3 выводилось в столбик:
Имя
100
200
300
400 и т.д.
Вроде так.
Только Label3 находится на другой форме, в этом же екзе.
Я в этом деле новичок

Последний раз редактировалось aleksandr278; 21.03.2010 в 23:51.
aleksandr278 вне форума Ответить с цитированием
Старый 21.03.2010, 23:54   #6
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Я так понял ты использовал Delimited...
Что бы вывести всё в столбик надо:
Код:
Label3.Caption := T[0] + #13#10 {перевод коретки на новую строчку} +
                        T[1] + #13#10 +
                        .... + #13#10 +
                        T[n];
W0LF вне форума Ответить с цитированием
Старый 22.03.2010, 00:04   #7
aleksandr278
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 35
По умолчанию

Огромное спасибо, всё работает.
Я в этом деле новичок
aleksandr278 вне форума Ответить с цитированием
Старый 22.03.2010, 00:07   #8
Alex2009
Proger Man
Форумчанин
 
Аватар для Alex2009
 
Регистрация: 07.03.2009
Сообщений: 584
По умолчанию

Если у тебя Label3 лежит к примеру на Form2 значит пиши так.
Form2.Label3:="а тут как написанно выше"
ShowMessage('Добро пожаловать!');
Alex2009 вне форума Ответить с цитированием
Старый 22.03.2010, 00:07   #9
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

А если количество ":" неизвестно... Допустим 100:200 в файле записано, или 100:200:...:10000, то что бы все части записать в Label3 столбиком, неудобно будет использовать тот способ что я написал раньше) Нужно циклом:
Код:
var
  T: TStringList;
  i: integer;
begin
  T := TStringList.Create;
  T.Delimiter := ':';
  T.DelimitedText := T.Text;
  Label3.Caption := '';
  for i:=0 to T.Count - 1 do
    Label3.Caption := Label3.Caption + T[i] + #13#10;
    if i = T.Count -1 then
      Label3.Caption := Label3.Caption + T[i];
  T.Free;
end;
Только не забудь загрузить файл сначала (T.LoadFromFile('d:\1.txt'))...

P.S.: Для модеров: второе сообщение создал из-за того что вечером форум лагает, все кнопки (Цытата, код, форматирование текста) неработают, приходиться писать теги вручную, и в правке сохранение непашет и ну еще кучка мелочей...

P.S.: Для aleksandr278 надеюсь на "+" )

Последний раз редактировалось Stilet; 22.03.2010 в 08:15.
W0LF вне форума Ответить с цитированием
Старый 18.12.2010, 20:03   #10
Kamil04ka
Новичок
Джуниор
 
Регистрация: 16.12.2010
Сообщений: 1
По умолчанию

mojete podskazat' kak sdelat' tak chtoby v label1 vyvodilsya tekst ? ili dlya etogo nujen drugoi komponent ? ya prosto novichek poetomu ne znayu
Kamil04ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компонент label c выравниванием по ширине Polotenchik Компоненты Delphi 1 18.02.2010 16:31
Вывод в Label GrindeX Общие вопросы C/C++ 2 19.11.2009 22:56
Вывод некоторых параметров из *.ini (или *.txt) файлов в поля Label grey Помощь студентам 11 14.02.2009 10:58
Вывод в label forumu Помощь студентам 9 19.11.2007 21:36
нужна помошь новичку. не могу получить вывод в label. Cor88 Общие вопросы Delphi 12 30.09.2007 20:19