Пишу прогу тест с использованием MFC. Сперва происходит регистрация тестируемого.В поле вводится ФИО,затем нажимается OK и запускается сам тест.
Присвоил полю ввода переменную типа CString. Как сделать так чтобы,после нажатия кнопки ОК создавался файл с именем ФИО.
12 ноября 2009 в 11:01
>>А имя переменной никак наверное нельзя получить.
Гы гы… про символы слышал? Как думаешь отладчик работает? ))
+ имя переменной можно экспортировать. Короче читаем книгу:
"С. Шрайбер, Недокументированные возможности Windows 2000"
>>да проблема в том,что из поля в переменную не сохраняется
Ну.. я ж тебе сказал UpdateData () в обработчике ::OnOk().
12 ноября 2009 в 9:01
Имя переменной просто в кавычках забить, где имя файла задаётся и всё, делов-то.
12 ноября 2009 в 2:01
> >> В С++ это скорее всего не получится.
> Это интересно почему? аргументируй.
Я просто не знаю как это даже представить. Имя переменной не сохраняется в бинарнике. Имена функций — да в либах остаются.
А имя переменной никак наверное нельзя получить. Имеется ввиду ввиде строки.
Разве что каким-нибудь хитрым макросом или сторонним препроцессором.
12 ноября 2009 в 1:03
да проблема в том,что из поля в переменную не сохраняется
12 ноября 2009 в 1:02
>> В С++ это скорее всего не получится.
Это интересно почему? аргументируй.
>> неправильно сформулиовал. строка в переменной и будет названием
>> файла
Блин, ну чего ты мучаешься? отладчиком работать умеешь? Прошелся пошагово по коду, посмотрел почему CreateFile возвращаетошибку? Вызвал на крайний случай GetLastError();
но очень подозреваю что пустое имя файла передаешь или если с путем, то не праивльно путь формируешь, или вообще ищещь файл не там..
Да кстати не забудь CloseHandle потом вызвать.
12 ноября 2009 в 1:01
неправильно сформулиовал. строка в переменной и будет названием файла
12 ноября 2009 в 0:03
> мне надо создать файл с названием этой переменной
> названием этой переменной
В С++ это скорее всего не получится.
11 ноября 2009 в 23:00
что есть textBox1.Text? мое поле ввода?
11 ноября 2009 в 22:04
все кроме udatedata юзал
11 ноября 2009 в 22:00
>> файл не создаётся
Кто то программировать просто не умеет!
>> CString name=textBox1.Text;
Как Вы уверены что в textBox1.Text – Вашь текст? UpdateData не забыл ?
>>fp=fopen(name,"w");
функция fopen принимает const char * а неCString!!! Чтобы превратить одно в другое как миминум нужно применить оператор (LPCTSRT)name – это два…
Есть еще такая замечательная вещь как проверка ошибок. И получение кода ошибки.
И наконец юзай WinAPI функции CreateFile, а не потоковый ввод/вывод.
11 ноября 2009 в 21:03
В смысле не приносит результата ? 0_о
11 ноября 2009 в 21:03
файл не создаётся
11 ноября 2009 в 21:02
желаю,но в данном случае вышенаписанный код не подходит
11 ноября 2009 в 21:02
точнее подходит, но не приносит результата
11 ноября 2009 в 21:01
То есть ничем, кроме MFC, пользоваться не желаете?
11 ноября 2009 в 21:00
я в MFC делаю а не в WINAPI
11 ноября 2009 в 20:02
FILE *fp;
CString name=textBox1.Text;
fp=fopen(name,"w");
Как то так….
11 ноября 2009 в 19:04
мне надо создать файл с названием этой переменной
11 ноября 2009 в 19:02
через поток…
открываешь поток а потом туда записываешь значение переменной