Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > RichEdit


Автор: W_A_K_E 19.1.2005, 16:10
Привет всем! Я хотел бы узнать можно ли загрузить текст в TRichEdit из Ini файла
Не используя LoadFromFile?

Я пишу вроде того:
Код

//По нажатию на кнопку
var
 F: TIniFile;
begin
 F := TIniFile.Create('//192.168.0.25/newversionmemcl/load.ini');
 RichEdit1.Lines := F.ReadString('PazdelLoad', 'Ctrokaedit2', 'tekst po ymolchaniy');
 F.Destroy;
end;


Подскажите плиз что я делаю неправильно.
Зарание спасибо...

Автор: Dynamic 19.1.2005, 16:25
Код

RichEdit1.Lines.Text := .......

Автор: Rennigth 19.1.2005, 16:26
это как? RichEdit1.Lines := 'blabla'
Код

RichEdit1.Lines.add('blabla');

Автор: Akella 19.1.2005, 16:32
Код

var
F: TIniFile;
begin
F := TIniFile.Create('//192.168.0.25/newversionmemcl/load.ini');
RichEdit1.Lines.Add := F.ReadString('PazdelLoad', 'Ctrokaedit2', 'tekst po ymolchaniy');
F.Destroy;
end;


Добавлено @ 16:33
Метод Add добавляет строку в множество строк (TStrings)

Автор: Guest 19.1.2005, 17:12
Цитата(dsergey @ 19.1.2005, 16:32)
Метод Add добавляет строку в множество строк (TStrings)

Я тоже сначало думал методом добавления, но ошибся именоо тут он не работает...


Цитата(Dynamic @ 19.1.2005, 16:25)
RichEdit1.Lines.Text := .......

Спасибо вот это самое то!

Автор: Akella 19.1.2005, 17:15
попробуй этот код
Код

var
F: TIniFile;
begin
F := TIniFile.Create('//192.168.0.25/newversionmemcl/load.ini');
RichEdit1.Lines.Add(F.ReadString('PazdelLoad', 'Ctrokaedit2', 'tekst po ymolchaniy'));
F.Destroy;
end;

Добавлено @ 17:16
я не пойму тебе надо значение считать или полностью загрузить весь ini (т.е. полное содержимое ini-файла)

Объясни!!!!

Автор: Rennigth 19.1.2005, 17:19
Цитата

Я тоже сначало думал методом добавления, но ошибся именоо тут он не работает...

даже проверил, все прекрасно работает с lines.add

Автор: Akella 19.1.2005, 17:29
Цитата(Rennigth @ 19.1.2005, 17:19)
даже проверил, все прекрасно работает с lines.add


все правильно.


W_A_K_E, смотри иногда спавку (там есть примеры)

Автор: W_A_K_E 21.1.2005, 11:03
Цитата(dsergey @ 19.1.2005, 17:15)
var
F: TIniFile;
begin
F := TIniFile.Create('//192.168.0.25/newversionmemcl/load.ini');
RichEdit1.Lines.Add(F.ReadString('PazdelLoad', 'Ctrokaedit2', 'tekst po ymolchaniy'));
F.Destroy;
end;


Да и правда работает. Видимо я что то забыл поставить в тот раз, но сейчас все ок!
Одно только но При ненахождении сетевого адреса форма начинает зависать. Вообще я сам использую такой код:

Код

var
F: TiniFile;
begin
 F := TIniFile.Create('\\127.0.0.1\test\test.ini');
 RichEdit1.Lines.Strings[0] := F.ReadString('info', '0', 'Загрузка не удачна!');
 RichEdit1.Lines.Strings[1] := F.ReadString('info', '1', '');
 RichEdit1.Lines.Strings[2] := F.ReadString('info', '2', '');
 RichEdit1.Lines.Strings[3] := F.ReadString('info', '3', '');
 RichEdit1.Lines.Strings[4] := F.ReadString('info', '4', '');
 RichEdit1.Lines.Strings[5] := F.ReadString('info', '5', '');
 RichEdit1.Lines.Strings[6] := F.ReadString('info', '6', '');
 RichEdit1.Lines.Strings[7] := F.ReadString('info', '7', '');
 RichEdit1.Lines.Strings[8] := F.ReadString('info', '8', '');
 RichEdit1.Lines.Strings[9] := F.ReadString('info', '9', '');
 RichEdit1.Lines.Strings[10] := F.ReadString('info', '10', '');
 RichEdit1.Lines.Strings[11] := F.ReadString('info', '11', '');
 RichEdit1.Lines.Strings[12] := F.ReadString('info', '12', '');
 RichEdit1.Lines.Strings[13] := F.ReadString('info', '13', '');
 RichEdit1.Lines.Strings[14] := F.ReadString('info', '14', '');
 RichEdit1.Lines.Strings[15] := F.ReadString('info', '15', '');
 RichEdit1.Lines.Strings[16] := F.ReadString('info', '16', '');
 RichEdit1.Lines.Strings[17] := F.ReadString('info', '17', '');
 RichEdit1.Lines.Strings[18] := F.ReadString('info', '18', '');
 RichEdit1.Lines.Strings[19] := F.ReadString('info', '19', '');
 RichEdit1.Lines.Strings[20] := F.ReadString('info', '20', '');
 RichEdit1.Lines.Strings[21] := F.ReadString('info', '21', '');
 RichEdit1.Lines.Strings[22] := F.ReadString('info', '22', '');
 RichEdit1.Lines.Strings[23] := F.ReadString('info', '23', '');
 RichEdit1.Lines.Strings[24] := F.ReadString('info', '24', '');
 RichEdit1.Lines.Strings[25] := F.ReadString('info', '25', '');
 RichEdit1.Lines.Strings[26] := F.ReadString('info', '26', '');
 RichEdit1.Lines.Strings[27] := F.ReadString('info', '27', '');
 RichEdit1.Lines.Strings[28] := F.ReadString('info', '28', '');
 RichEdit1.Lines.Strings[29] := F.ReadString('info', '29', '');
 RichEdit1.Lines.Strings[30] := F.ReadString('info', '30', '');
 F.Destroy;
end;


Этим самым он загружает 30 строк из любого ini файла.


Цитата(dsergey @ 19.1.2005, 17:15)
я не пойму тебе надо значение считать или полностью загрузить весь ini (т.е. полное содержимое ini-файла)


да нужно полностью, но код выше загружает только по строкам.

Автор: Akella 21.1.2005, 11:32
а зачем так?
так
Цитата
F := TIniFile.Create('\\127.0.0.1\test\test.ini');

я имею в ввиду сетевой адрес, это ведь товя машина, т.е. локальная
ну, если так надо тогда, я просто спросил.

а можно еще так
Код

F := TIniFile.Create('\\localhost\test\test.ini');

Добавлено @ 11:33
Цитата
Этим самым он загружает 30 строк из любого ini файла.

наверное не 30 строк, а 30 значений
Добавлено @ 11:41
т.к. если читать 30 строк, то может быть такое в ini-файле
Код

[MAIN]
param1=10
param1=11
param1=12

[SECOND]
param2=20
param2=21
param2=22

Автор: Dynamic 21.1.2005, 12:36
А проще нельзя написать:
Код
var
F: TiniFile;
i: integer;
begin
F := TIniFile.Create('\\127.0.0.1\test\test.ini');
RichEdit1.Lines.Add(F.ReadString('info', '0', 'Загрузка не удачна!'));
for i := 1 to 30 do
  RichEdit1.Lines.Add(F.ReadString('info', IntToStr(i), ''));
F.Free;
end;

Автор: W_A_K_E 21.1.2005, 15:20
Цитата(Dynamic @ 21.1.2005, 12:36)

Код

var
F: TiniFile;
i: integer;
begin
F := TIniFile.Create('\\127.0.0.1\test\test.ini');
RichEdit1.Lines.Add(F.ReadString('info', '0', 'Загрузка не удачна!'));
for i := 1 to 30 do
  RichEdit1.Lines.Add(F.ReadString('info', IntToStr(i), ''));
F.Free;
end;



Вообщето правильно, но у меня почему то он не сработал я его немного изменил

Код

var
F: TIniFile;
i:integer;
begin
//Загрузка информации
F := TIniFile.Create('\\127.0.0.1\test\test.ini');
RichEdit1.Lines.Strings[0]:=(F.ReadString('info', '0', 'Загрузка не удачна!'));
for i := 1 to 30 do
  RichEdit1.Lines.Strings[i]:=(F.ReadString('info', IntToStr(i), ''));
F.Free;
end;


а вобще отличный код спасибо
ведб можно как то еще через масив сделать надо бы подумать а вобще этот самый оптимальный

Да кстати в test.ini у меня прописано:
Цитата

[info]
1=строка1
2=строка2
3=строка3
4=строка4
5=строка5
6=строка6
7=строка7
8=строка8
9=строка9
10=строка10
11=строка11
12=строка12

Автор: Akella 21.1.2005, 17:00
Сообщи в конце концов, конечную цель свойго топика. Ведь
Цитата(W_A_K_E @ 19.1.2005, 16:10)
загрузить текст в TRichEdit из Ini файла

наверное не конечная цель. Может ты просто не умеешь работать с Ini-файлоами или реестром.
Задай новый вопрос или сделай поиск по форуму. smile

Автор: Дрюча 21.1.2005, 17:05
Сделай проще: RichEdit1.Lines.Text:=F.ReadString('info', '0', 'Загрузка не удачна!');

Плюс еще вот это:
if RichEdit1.Lines.Text <> 'Загрузка не удачна!'
then
{продолжаем....}


Автор: Dynamic 21.1.2005, 17:42
W_A_K_E
не могу понять, почему Lines.Add у тебя не работает. Сейчас это может и не принципиально, но разобраться с этим, имхо, стОит.
Где-то что-то ты не договариваешь........
smile

Автор: W_A_K_E 21.1.2005, 20:21
Цитата(dsergey @ 21.1.2005, 17:00)
Сообщи в конце концов, конечную цель свойго топика.

Вообще я разрабатываю программу для очистки места на харде и в оперативке
А эта функция нужна мне для проверки новой версии... Тоесть пользователь ныжимает кнопку "Новая версия" и кокраз начинает срабатывать эта самая функция... Загрузка информации происходит из ini файла в окно TRichEdit, а если файл обновления не найден, то выдается сообщение "Загрузка не удачна!". Конечно я пробовал через LoadFromFile... Все как бы работает, но как только файл не найден, то выходит ошибка типа файл не найден. А вот как выключить ошибку это вопрос посложнее вот я и решил попробовать через такой путь

Цитата(dsergey @ 21.1.2005, 17:00)
Может ты просто не умеешь работать с Ini-файлоами или реестром

Конечно может не все я знаю про него ну самое основное знаю...

Цитата(Dynamic @ 21.1.2005, 17:42)
не могу понять, почему Lines.Add у тебя не работает. Сейчас это может и не принципиально, но разобраться с этим, имхо, стОит.
Где-то что-то ты не договариваешь........

Может быть я что то желаю неправильно, но пишу вот так
Код

uses IniFiles;
procedure TForm1.Button1Click(Sender: TObject);
var
F: TiniFile;
i: integer;
begin
F := TIniFile.Create('\\127.0.0.1\test\test.ini');
RichEdit1.Lines.Add(F.ReadString('info', '0', 'Загрузка не удачна!'));
for i := 1 to 30 do
  RichEdit1.Lines.Add(F.ReadString('info', IntToStr(i), ''));
F.Free;
end;


Выдает ошибку при компиляции на слово add

Автор: Akella 22.1.2005, 10:29
Цитата(W_A_K_E @ 21.1.2005, 20:21)
Может быть я что то желаю неправильно, но пишу вот так

Код

uses IniFiles;
procedure TForm1.Button1Click(Sender: TObject);
var
F: TiniFile;
i: integer;
begin
F := TIniFile.Create('\\127.0.0.1\test\test.ini');
RichEdit1.Lines.Add(F.ReadString('info', '0', 'Загрузка не удачна!'));
for i := 1 to 30 do
  RichEdit1.Lines.Add(F.ReadString('info', IntToStr(i), ''));
F.Free;
end;




Выдает ошибку при компиляции на слово add


Конкретнее, какую ошибку?????????
Добавлено @ 10:31
У МЕНЯ НЕ ВЫДАЕТ НИ КАКИХ ОШИБОК И НОРМАЛЬНО КОМИЛИРУЕТСЯ

Автор: W_A_K_E 22.1.2005, 14:25
Прошу извенения, теперь все работает...
Всем спасибо!

Автор: Dynamic 23.1.2005, 19:40
Цитата(W_A_K_E @ 22.1.2005, 14:25)
теперь все работает...

Теперь - это когда??? Что было-то?? Не стесняйся, все свои ;)

Автор: z-END 23.1.2005, 19:50
Цитата(W_A_K_E @ 21.1.2005, 20:21)
А эта функция нужна мне для проверки новой версии...

тогда может имеет смысл использовать не ИниФайл, а НТТП (т.е. get или post)?!
например:
при нажатии "новая версия" отправляется запрос:
www.mysoft.com/get_new_version.php?product_id={...}&current_version={...}
где
product_id - код твоей программы
current_version - установленная у юзера версия софта
скрипт обрабатывает эти данные и отправляет ответ (новой версии нет, ил линк для скачивания новой версии)


Автор: W_A_K_E 7.2.2005, 01:03
все дело в том что я организую это по локальной сети а не в интрнете.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)