Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OpenDialog как сбросить, после использования OD немогу сохранить  
:(
    Опции темы
Voronin_Igor
Дата 28.6.2010, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.7.2008
Где: Петрозаводск

Репутация: нет
Всего: нет



Добрые люди! Проблема вот в чем:

Программа с помощью OpenDialog берет адрес файла (неважно какого) и сохраняет его в другой.
Но возникает проблема после использования OpenDialog она не может открыть другой файл.
если убрать OpenDialog все работает или сохранить файл с помощью SaveDialog все работает
вот код:
Код

AnsiString SBaz;
if (OpenDialog1->Execute())
    {
    SBaz=OpenDialog1->FileName;
    Form5->OpenDialog1->Free();
    }
    
Memo1->Lines->Clear();
Memo1->Lines->Add(SBaz);
Memo1->Lines->SaveToFile("C:\text.txt" );


пишет что не может создать файл.
такое ощущение что после диалога с другими файлами невозможно работать
как сбросить диалог? smile  
или как можно это заставить работать

Это сообщение отредактировал(а) Voronin_Igor - 28.6.2010, 21:38
PM MAIL   Вверх
Voronin_Igor
Дата 28.6.2010, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.7.2008
Где: Петрозаводск

Репутация: нет
Всего: нет



вот так работает:

Код

AnsiString SBaz;
if (OpenDialog1->Execute())
    {
    SBaz=OpenDialog1->FileName;
    Form5->OpenDialog1->Free();
    }
    
Memo1->Lines->Clear();
Memo1->Lines->Add(SBaz);
if (SaveDialog1->Execute())
    {
    Memo1->Lines->SaveToFile(SaveDialog1->FileName);
    }
    


Это сообщение отредактировал(а) Voronin_Igor - 29.6.2010, 06:42
PM MAIL   Вверх
ИванМ
Дата 28.6.2010, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 5
Всего: 23



замени
Цитата(Voronin_Igor @  28.6.2010,  21:17 Найти цитируемый пост)
Memo1->Lines->SaveToFile("C:\text.txt" );

на
Код

Memo1->Lines->SaveToFile("C:\\text.txt" );

PM MAIL   Вверх
Voronin_Igor
Дата 28.6.2010, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.7.2008
Где: Петрозаводск

Репутация: нет
Всего: нет



Цитата(ИванМ @  28.6.2010,  19:46 Найти цитируемый пост)
Memo1->Lines->SaveToFile("C:\\text.txt" );
 
не так не получится адрес я выдуманный написал в нем ошибки нет если убрать OpenDialog то все работает

PM MAIL   Вверх
ИванМ
Дата 28.6.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 5
Всего: 23



Цитата(Voronin_Igor @  28.6.2010,  21:38 Найти цитируемый пост)
Form5->OpenDialog1->Free();

Эта строчка вообще не нужна. Нужна только если вы создаете OpenDialog динамически.
PM MAIL   Вверх
Данкинг
Дата 28.6.2010, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Voronin_Igor @  28.6.2010,  22:17 Найти цитируемый пост)
пишет что не может создать файл.

На каком месте, на сохранении? А Free действительно не нужно, странно, как на этом место ошибка не вылезает.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Voronin_Igor
Дата 29.6.2010, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.7.2008
Где: Петрозаводск

Репутация: нет
Всего: нет



Цитата(Данкинг @  28.6.2010,  21:27 Найти цитируемый пост)
На каком месте, на сохранении? 


ошибка появляется при попытке сохранения Memo1->Lines->SaveToFile("C:\\text.txt" );
пишет что не может создать файл, а по поводу Form5->OpenDialog1->Free(); это от безысходности  
 smile 
PM MAIL   Вверх
Данкинг
Дата 29.6.2010, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Voronin_Igor @  29.6.2010,  07:49 Найти цитируемый пост)
ошибка появляется при попытке сохранения Memo1->Lines->SaveToFile("C:\\text.txt" );

Ну, OD тут ни при чём определённо. Ищи косяк в другом. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
mrbrooks
Дата 29.6.2010, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(Voronin_Igor @  29.6.2010,  07:49 Найти цитируемый пост)
ошибка появляется при попытке сохранения Memo1->Lines->SaveToFile("C:\\text.txt" );

ололо. показывай весь код. может у тебя диска C нет? smile ты точно с этим путем сохраняешь?


Цитата(Voronin_Igor @  29.6.2010,  07:49 Найти цитируемый пост)
Form5->OpenDialog1->Free();

улыбнуло. даже при динамическом создание контрола так не делают. мы же не дельфятники.
PM MAIL   Вверх
xvr
Дата 29.6.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



OpenDialog может сменить текущую директорию для процесса. Если у вас в SaveToFile прописан не полный путь (а судя по вашему комментарию 'адрес я выдуманный написал' - что там реально написано мы не знаем), то может и не сохраниться.

PM MAIL   Вверх
Voronin_Igor
Дата 29.6.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.7.2008
Где: Петрозаводск

Репутация: нет
Всего: нет



Повторюсь Адрес тут не причем 

Код

AnsiString SBaz;
SBaz="Любая строка";    
Memo1->Lines->Clear();
Memo1->Lines->Add(SBaz);
Memo1->Lines->SaveToFile("temp/text.txt" );

Работает


Код

AnsiString SBaz;
Memo1->Lines->Clear();
Memo1->Lines->LoadFromFile("temp/text.txt");
SBaz=Memo1->Lines->GetText();
if (OpenDialog1->Execute())
    {
    SBaz+=OpenDialog1->FileName;

    }
    
Memo1->Lines->Clear();
Memo1->Lines->Add(SBaz);           
Memo1->Lines->SaveToFile("C:\text.txt" );   //работает до этого места


более того

Код

AnsiString SBaz;
Memo1->Lines->Clear();

if (OpenDialog1->Execute())
    {
    SBaz+=OpenDialog1->FileName;

    }
                                                        
Memo1->Lines->LoadFromFile("temp/text.txt"); // теперь здесь ошибка
SBaz=Memo1->Lines->GetText();

    
Memo1->Lines->Clear();
Memo1->Lines->Add(SBaz);             
Memo1->Lines->SaveToFile("C:\text.txt" );


так что, как мне кажется адрес тут не причем 



Это сообщение отредактировал(а) Voronin_Igor - 29.6.2010, 16:04
PM MAIL   Вверх
xvr
Дата 29.6.2010, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(Voronin_Igor @ 29.6.2010,  16:02)
Повторюсь Адрес тут не причем 

Как раз 'причем'. У тебя там по ошибке в каждой строке  smile 

Цитата

Код

Memo1->Lines->SaveToFile("C:\text.txt" );   //работает до этого места


Еще бы, нельзя символ табуляции засовывать в имя файла  smile 
Код

Memo1->Lines->SaveToFile("C:\\text.txt" );   //надо так


Цитата

более того
Код

AnsiString SBaz;
Memo1->Lines->Clear();

if (OpenDialog1->Execute())
    {
    SBaz+=OpenDialog1->FileName;

    }
                                                        
Memo1->Lines->LoadFromFile("temp/text.txt"); // теперь здесь ошибка

У тебя есть папка temp РЯДОМ с файлом, который ты пытаешься открыть? А файл text.txt в этой папке есть?

PM MAIL   Вверх
Voronin_Igor
Дата 29.6.2010, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.7.2008
Где: Петрозаводск

Репутация: нет
Всего: нет



Цитата(xvr @  29.6.2010,  15:14 Найти цитируемый пост)
У тебя есть папка temp РЯДОМ с файлом, который ты пытаешься открыть? А файл text.txt в этой папке есть?

Да конечно 
все работает пока нет OpenDialog

PM MAIL   Вверх
Voronin_Igor
Дата 29.6.2010, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 14.7.2008
Где: Петрозаводск

Репутация: нет
Всего: нет



люди проверьте пожалуйста у себя в builder e этот код 

Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString SBaz;
RichEdit1->Lines->Clear();
RichEdit1->Lines->LoadFromFile("Base/zad.txt");
SBaz=RichEdit1->Lines->GetText();

if (OpenDialog1->Execute())
    RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName) ;
    RichEdit1->Lines->SaveToFile("Base/zad.txt");

}

есть подозрения что мой builder глючит
в каталоге с программой нужно создать папку Base а в ней файл zad.txt c любым текстом
заранее благодарен!!!
PM MAIL   Вверх
xvr
Дата 29.6.2010, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(Voronin_Igor @  29.6.2010,  21:09 Найти цитируемый пост)
люди проверьте пожалуйста у себя в builder e этот код 
BCB 6.0 Все работает (если не пытаться открывать файл оттуда, откуда он это предлагает сделать сначала - из 'Моих Документов'. Оттуда работать не будет)

Цитата(Voronin_Igor @  29.6.2010,  21:09 Найти цитируемый пост)
есть подозрения что мой builder глючит
Это вряд ли  smile 
Поставь в опциях OpenDialog1: Options->ofNoChangeDir в true


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0996 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.