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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2011, 06:40   #1
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию ComboBox чтение файлов .txt

Здравствуйте уважаемые форумчане!
Подскажите как реализовать чтение с .txt файлов.
У меня имеется форма с компонентом ComboBox1 и Memo поле
как сделать так чтобы при выборе в ComboBox1 допустим 1.txt в мемо открывалось содержимое документа 1.txt при выборе допустим 2.txt в мемо открывалось содержимое документа 2.txt и так далее.
SKS вне форума Ответить с цитированием
Старый 24.01.2011, 06:54   #2
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

на событие onchange combobox'a пишешь код
Код:
var
f:textfile;
s:string;
begin
   assignfile(f,'путь\'+combobox.text);
   reset(f);
   s:=read(f);
   clodefile(f);
с учетом того что у тебя в комбобокс именно 1.тхт.
Возможно слегка натупил с чтением из файла но способ такой
Lokos вне форума Ответить с цитированием
Старый 24.01.2011, 08:34   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) прочитать файл в Memo можо много проще (у него уже есть готовый метод от TString):
Memo1.Lines.LoadFromFile(combobox1. text);

2) перед открытиемнеплохо проверять наличие файла через if FileExists(combobox1.text) then

3) но это всё цветочки! проблема в том, на какое событие прицепится.
Предложенный выше код (событие OnChange) возникает даже в том случае,
если открыли выпадающий список и по нему перемещаемся с помощью стрелок курсора - нажали стрелку - загрузился новый файл, опять нажали стрелку вниз - загрузился новый файл.. а ведь в comboBox можно после этого нажать Esc... что будет в этом случае?!
Я предложил бы простой, "кондовый" вариант - около комбобокса маленькая кнопочка - по нажатию на неё грузить файл, имя которого выбрано в комбобоксе..
и всё. никаких проблем!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.01.2011, 08:34   #4
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию

блин не понятно. путь прописал не работает, поюзал не могу сделать. исходника нет ни у кого? Блин как слепой котенок тыкаюсь =( Перебрал все варианты какие знал, не могу сделать.
SKS вне форума Ответить с цитированием
Старый 24.01.2011, 09:11   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

что значит - не работает?!
кинуть на форму ComboBox получилось?
выделить его и в инспекторе объектов назначить код на событие (events) OnChange получилось?
туда прописать примерно такой код:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
 path : string;
begin
  path := ExtractFilePath(Application.ExeName);
  if FileExists(path+ComboBox1.Text) then
     Memo1.Lines.LoadFromFile(path+ComboBox1.Text)
  else
     ShowMessage('нет файла: '+path+ComboBox1.Text);    
end;
в чём проблем-с?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.01.2011, 09:21   #6
Ev[G]eN
C / C++ / Java
Пользователь
 
Регистрация: 23.01.2011
Сообщений: 14
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan;

type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Memo1: TMemo;
    XPManifest1: TXPManifest;
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.ItemIndex = 0 then
Memo1.Lines.LoadFromFile('C:\Documents and Settings\Admin\Рабочий стол\1.txt');
if ComboBox1.ItemIndex = 1 then
Memo1.Lines.LoadFromFile('C:\Documents and Settings\Admin\Рабочий стол\2.txt');
end;

end.
вот так


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.01.2011 в 13:19.
Ev[G]eN вне форума Ответить с цитированием
Старый 24.01.2011, 10:29   #7
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию

Ev[G]eN - Спасибо! У меня почти получилось, теперь догнал я в стринге забывал указывать )))
+ к репе!
SKS вне форума Ответить с цитированием
Старый 24.01.2011, 10:54   #8
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Держи пример:
Вложения
Тип файла: rar Новая папка (2).rar (2.5 Кб, 42 просмотров)
uberchel вне форума Ответить с цитированием
Старый 26.01.2011, 13:43   #9
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию

Спасибо uberchel, а то у меня возникла проблема с мемо полем программа зависала не мог разобраться в чем дело. просмотрев ваш исходник понял в чем была моя ошибка.
SKS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из txt. Даниил_глазко JavaScript, Ajax 1 20.12.2010 10:02
Чтение txt с сайта _SERGEYX_ Работа с сетью в Delphi 5 30.11.2010 09:43
Чтение частей строк из *.txt файлов HTL Общие вопросы Delphi 4 04.04.2009 20:50
Чтение из TXT файла soonner Общие вопросы Delphi 1 14.03.2009 13:52
Чтение/Поиск в txt файле и вывод в ComboBox limnique Общие вопросы C/C++ 2 05.09.2008 23:01