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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2012, 22:13   #1
Real_Djee
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию Delphi. Работа с .txt

Здравствуйте, подскажите пожалуйста,

на событие onShow формы на которой есть PageControl, создаю TabSheet используя цикл for, на TabSheet в этом же цикле создается Label.
есть txt файл в котором строки имеют вид:
1_первая строка
2_строка
3_...
теперь вопрос:
как сделать что бы в Label на 1 TabSheet записывалось все что идет после 1_, соответственно на Label_2 все что после 2_ и т.д.??
Real_Djee вне форума Ответить с цитированием
Старый 10.10.2012, 22:58   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Если не обязательно использовать тхт файл, то посмотрите на ini.
Вы сможете получать строки, просто формируя обращения к нужным полям (параметрам).

Или можно "заморочиться" с тхт, но тогда придется считывать построчно файл и "резать" полученную строку (copy(str,3,length(str)-2)).

Для более предметного разговора выложите свой проект (архивом) или остов проекта (хотя, наверное, он сейчас как раз на этой стадии).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.10.2012, 19:22   #3
Real_Djee
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

Да ini действительно лучше,
но хотелось бы разобраться куда в цикл включать работу со строками?

Код:
procedure TMainForm.FormShow(Sender: TObject);
var
  i: integer;
begin
for i:=0 to 49 do
begin

    Page := TTabSheet.Create(MainForm);
    Page.PageControl := PageControl1;
    Page.Name := 'Sheet_'+IntToStr(i+1);
    Page.Caption := IntToStr(i+1);
    Page.ImageIndex := i+1;
    Page.Left:=4;
    Page.Top := 27;
    Page.Visible:= True;

    Quest:= Tlabel.Create(Page);
    Quest.Parent := Page;
    Quest.Name:= 'QuestLabel_'+IntToStr(i+1);
    Quest.WordWrap:= True;
    Quest.Left:= 50;
    Quest.Top:= 50;
    Quest.Font.Size:= 24;
    Quest.Font.Name := 'Arial';
end;
end;
Real_Djee вне форума Ответить с цитированием
Старый 11.10.2012, 20:20   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
uses inifiles;
...
procedure TForm1.FormShow(Sender: TObject);
var
  i: integer;
  ini: TIniFile;
begin
  ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\MyIni.ini');
  for i := 0 to 49 do
  begin

    Page := ttabsheet.Create(Form1);
    Page.PageControl := PageControl1;
    Page.Name := 'Sheet_' + IntToStr(i + 1);
    Page.Caption := IntToStr(i + 1);
    Page.ImageIndex := i + 1;
    Page.Left := 4;
    Page.Top := 27;
    Page.Visible := True;

    quest := tlabel.Create(Page);
    quest.Parent := Page;
    quest.Name := 'QuestLabel_' + IntToStr(i + 1);
    quest.Caption := ini.ReadString('Questions',
      'QuestLabel_' + IntToStr(i + 1), 'QuestLabel_' + IntToStr(i + 1));
    quest.WordWrap := True;
    quest.Left := 50;
    quest.Top := 50;
    quest.Font.Size := 24;
    quest.Font.Name := 'Arial';
  end;

  ini.Free;
end;
Сам файл myini.ini (который должен быть около exe)
Цитата:
[Questions]
QuestLabel_1 = значение_1
QuestLabel_2 = значение_2
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.10.2012, 21:44   #5
Real_Djee
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

А почему у меня в Quest.Caption записываетя как я понимаю значение по умолчанию а не сама строка?
Например ini файл
Код:
[Questions]
 QuestLabel_1 = Это первая строка
 QuestLabel_2 = Это вторая ст.....
Real_Djee вне форума Ответить с цитированием
Старый 11.10.2012, 22:08   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Наверное потому, что вы еще не описали все строки
У меня правильно показываются на первых двух вкладках, а дальше идут по умолчанию.
(после запуска не совсем правильно показывается - на первой вкладке questlabel_50)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.10.2012, 22:28   #7
Real_Djee
 
Регистрация: 10.10.2012
Сообщений: 5
По умолчанию

да нет я не об этом, я так понимаю что в QuestLabel_1 и 2 уже должны быть значения из ини файла но у меня даже 1 не показывает, может не правильно написан ини
Код:
[Questions]
QuestLabel_1=Строка первая
QuestLabel_2=Строка вторая
...
его ведь не обязательно сразу весь описывать?
Real_Djee вне форума Ответить с цитированием
Старый 11.10.2012, 22:46   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Вот пример. Проверьте работоспособность.
Сразу все можно не описывать.
Вложения
Тип файла: zip tabsheet.zip (390.6 Кб, 7 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.10.2012, 23:05   #9
Real_Djee
 
Регистрация: 10.10.2012
Сообщений: 5
Смущение

Большое спасибо за подсказку, нашел ошибку даже стыдно какую...
Real_Djee вне форума Ответить с цитированием
Старый 11.10.2012, 23:27   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Пожалуйста.
Что же это может быть за ошибка такая?)
Кстати, правильнее написать ExtractFilePath(ParamStr(0)) + 'MyIni.ini' (иначе два слеша будут, правда это ни на что не влияет).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с txt файлами (delphi 7) -Jack- Общие вопросы Delphi 4 21.07.2012 23:51
работа с txt/ini в delphi 1o1man Помощь студентам 7 26.09.2010 03:24
импорт из txt, работа с массивом данных, экспорт в txt Danara Microsoft Office Excel 4 31.03.2010 00:26
работа с *.txt мимо Общие вопросы Delphi 39 18.06.2009 22:47
Работа С TXT ken8888 Помощь студентам 11 02.06.2009 10:04