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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2013, 17:02   #1
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию OpenDialog vs ifstream?

Разъясните, плиз, что за мистика? :
Код:
if (OpenDialog1->Execute()) {
            ifstream input(".\\settings.xml");
}
Если делать так:
input пустой

Если без OpenDialog1->Execute():
input все как надо забирает

И что делаем в таком случае? Идеально бы было, если бы работала конструкция в поле "[Code]"

Последний раз редактировалось Baburek; 06.12.2013 в 17:05.
Baburek вне форума Ответить с цитированием
Старый 07.12.2013, 00:17   #2
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

А так?
Код:
ifstream input;
if (OpenDialog1->Execute())
{
  input.open(".\\settings.xml");
}
FataLL вне форума Ответить с цитированием
Старый 09.12.2013, 09:35   #3
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от FataLL Посмотреть сообщение
А так?
Код:
ifstream input;
if (OpenDialog1->Execute())
{
  input.open(".\\settings.xml");
}
Те же проблемы: если есть две кнопки Button1(на ней OpenDialog->Execute()) и Button2(на ней input.open), то после выбора файла(Button1) кнопка Button2 просто "отваливается" = не срабатывает.

Код ниже:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h>
#include <fstream>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
ifstream input;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
{

}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
string s;
   input.open(".\\settings.xml");
   while (getline(input, s))
                        {
                        if(!s.length())
                        {
                                 ShowMessage("Yes");
                        }
                        else ShowMessage("No");
        }
}
//---------------------------------------------------------------------------
Update:
Форма такая, что тривиальней не бывает:

Последний раз редактировалось Baburek; 09.12.2013 в 09:44.
Baburek вне форума Ответить с цитированием
Старый 09.12.2013, 11:08   #4
Baburek
Форумчанин
 
Аватар для Baburek
 
Регистрация: 12.12.2010
Сообщений: 205
По умолчанию

Нашел решение своей проблеме в: Help->TOpenDialog->Properties->Options->ofNoChangeDir
Baburek вне форума Ответить с цитированием
Старый 10.01.2014, 15:41   #5
mish_k98
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 16
По умолчанию

зачем тебе и то и то.если тебе надо открывать один и тот же файл, можно через stream или stringlist.но если ты выбираешь файл то нужно так
if (OpenDialog1->Execute){AnsiString a=OpenDialog1->FileName;}
смотря что тебе нужно
mish_k98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ifstream rik_nel Общие вопросы C/C++ 3 07.09.2010 00:32
Проблема з ifstream rik_nel Visual C++ 15 10.08.2010 13:34
ifstream() Артэс Общие вопросы C/C++ 1 13.01.2010 19:07
Проблема OpenDialog и ifstream yuriyua Помощь студентам 1 14.10.2009 19:20
ifstream Артэс Общие вопросы C/C++ 10 21.06.2009 10:47