компьютерный форум
Вернуться   Компьютерный форум > Программирование и вебстроительство > Программирование

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 08.08.2005, 21:05   #1
Пользователи
 
Регистрация: 10.09.2004
Сообщений: 985
По умолчанию

Билдер пятый.

На форме есть сабж.

Делаю:
Код:
 if (OpenDialog1->Execute())
 *{
 * Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
 *}
Строки не добавляются. Почему?




vxk7m вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
08.08.2005, 21:05
Техник
реклама
По умолчанию

Старый 09.08.2005, 07:01   #2
Пользователи
 
Регистрация: 07.12.2004
Сообщений: 783
По умолчанию

хм...
Чудно. :blink: :blink: :blink:
В делфях у меня все работает.
может в Билдере
Код:
Memo1->Lines
и
Код:
OpenDialog1->FileName
разных типов.
Andy вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 09.08.2005, 07:55   #3
Пользователи
 
Регистрация: 10.09.2004
Сообщений: 985
По умолчанию

Тьфу мля. Короче ето маленький трюк. Сначала у меня на форме висел Мемо, и всё работало. Но мемо дает слишком мало возможностей. Более продвинут в етом плане ричедит. Потому я поменял ричедит на мемо, а что не перелопачивать всю погу, просто назвал его мемом =) =) =). Потому даный код следует читать так:
Код:
 if (OpenDialog1->Execute())
 {
 *RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
 }
Вобщем я понял - конструкцыя OpenDialog1->FileName возвращает cath вместо c:\path\ (в сюхе, кто не знает, слеш позначается '\', если же поставить '' - сюха ругается). Но вот почему, когда в место ричедита поставить мемо, то всё работает отлично???
Да, кстати, как преобразовать cath в c:\path\, точнее как преобразовать в \?
vxk7m вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 09.08.2005, 14:23   #4
ser
Пользователи
 
Регистрация: 14.08.2004
Сообщений: 435
По умолчанию

Дык батенька юзай OpenDialog1->FileName.c_str() и не парься, просто String не тоже самое что и char*
ser вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 09.08.2005, 18:30   #5
Пользователи
 
Регистрация: 10.09.2004
Сообщений: 985
По умолчанию

Цитата:
[b] Дык батенька smile.gif юзай OpenDialog1->FileName.c_str() и не парься, просто String не тоже самое что и char*
Оно то и само собой разумеется. Только вся ботва заключается в том, что буть то хоть char, хоть AnsiString - бекслешслеш он бекслешемслешем и остается. А нужно, чтобы в место одного бекслеша стояло 2.
Тоесть иными словами нужна процедурка, которая в заданой строке ищет бекслеш и заменяет его на 2 бекслеша. Вся трудность заключается в том, что сюхе трудно втолковать, что в строке cath сочитание p является не одним символом (как например '
','
',''...) а сочитанием двух символов - '\'+'p'. Вот вчём трудность заключается.

ЗЫ Вот кусочек кода - посмотри какая вылерает ошыбка
Код:
void __fastcall TForm1::FormDblClick(TObject *Sender)
{
 RichEdit1->Lines->LoadFromFile("c:\1.txt");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::RichEdit1KeyPress(TObject *Sender, char &Key)
{
 RichEdit1->Lines->LoadFromFile("c:1.txt");
}
Аналогично и ето
Код:
void __fastcall TForm1::FormDblClick(TObject *Sender)
{
 RichEdit1->Lines->LoadFromFile("c:\1.txt");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::RichEdit1KeyPress(TObject *Sender, char &Key)
{
 AnsiString a="c:1.txt";
 RichEdit1->Lines->LoadFromFile(a.c_str());
}
vxk7m вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 10.08.2005, 06:46   #6
Пользователи
 
Регистрация: 07.12.2004
Сообщений: 783
По умолчанию

Цитата:
[b]Дык батенька* юзай OpenDialog1->FileName.c_str() и не парься, просто String не тоже самое что и char*
Дык, что я говорил?
Andy вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 10.08.2005, 07:38   #7
Пользователи
 
Регистрация: 10.09.2004
Сообщений: 985
По умолчанию

2 Andy,
reed up
vxk7m вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 16.05.2006, 07:34   #8
han
Пользователи
 
Регистрация: 12.05.2006
Сообщений: 79
По умолчанию

У тебя проблема в том что RichEdit на то так и называеться, что ему надо подавать текст в формате RTF.
есть у него свойство что-то наподобии принимать входную информацию как текст.
установи в true и радуйся жизни.
han вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 10.08.2006, 08:03   #9
rgy
Пользователи
 
Регистрация: 02.02.2005
Сообщений: 6
По умолчанию

Цитата:
Тьфу мля. Короче ето маленький трюк. Сначала у меня на форме висел Мемо, и всё работало. Но мемо дает слишком мало возможностей. Более продвинут в етом плане ричедит. Потому я поменял ричедит на мемо, а что не перелопачивать всю погу, просто назвал его мемом =) =) =). Потому даный код следует читать так:
Код:
 if (OpenDialog1->Execute())
 {
 *RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
 }
Вобщем я понял - конструкцыя OpenDialog1->FileName возвращает cath вместо cath (в сюхе, кто не знает, слеш позначается '', если же поставить '' - сюха ругается). Но вот почему, когда в место ричедита поставить мемо, то всё работает отлично???
Да, кстати, как преобразовать cath в cath, точнее как преобразовать в ?
не может опендиалог возвращать без двойных слешей!
rgy вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Ответ


Опции темы
Опции просмотра

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

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



Текущее время: 08:08. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2