singlepost

Проблема с CString << На главную или назад  

Пишу прогу тест с использованием MFC. Сперва происходит регистрация тестируемого.В поле вводится ФИО,затем нажимается OK и запускается сам тест.
Присвоил полю ввода переменную типа CString. Как сделать так чтобы,после нажатия кнопки ОК создавался файл с именем ФИО.

19 ответов в теме “Проблема с CString”

  1. 19
    Cyber Max ответил:

    >>А имя переменной никак наверное нельзя получить.
    Гы гы… про символы слышал? Как думаешь отладчик работает? :) ))

    + имя переменной можно экспортировать. Короче читаем книгу:
    "С. Шрайбер, Недокументированные возможности Windows 2000"

    >>да проблема в том,что из поля в переменную не сохраняется
    Ну.. я ж тебе сказал UpdateData () в обработчике ::OnOk().

  2. 18
    Кирилл Быков ответил:

    Имя переменной просто в кавычках забить, где имя файла задаётся и всё, делов-то.

  3. 17
    Владимир Гордеев ответил:

    > >> В С++ это скорее всего не получится.
    > Это интересно почему? аргументируй.

    Я просто не знаю как это даже представить. Имя переменной не сохраняется в бинарнике. Имена функций — да в либах остаются.

    А имя переменной никак наверное нельзя получить. Имеется ввиду ввиде строки.

    Разве что каким-нибудь хитрым макросом или сторонним препроцессором.

  4. 16
    Серафим Москвин ответил:

    да проблема в том,что из поля в переменную не сохраняется

  5. 15
    Cyber Max ответил:

    >> В С++ это скорее всего не получится.
    Это интересно почему? аргументируй.

    >> неправильно сформулиовал. строка в переменной и будет названием
    >> файла
    Блин, ну чего ты мучаешься? отладчиком работать умеешь? Прошелся пошагово по коду, посмотрел почему CreateFile возвращаетошибку? Вызвал на крайний случай GetLastError();
    но очень подозреваю что пустое имя файла передаешь или если с путем, то не праивльно путь формируешь, или вообще ищещь файл не там..
    Да кстати не забудь CloseHandle потом вызвать.

  6. 14
    Серафим Москвин ответил:

    неправильно сформулиовал. строка в переменной и будет названием файла

  7. 13
    Владимир Гордеев ответил:

    > мне надо создать файл с названием этой переменной
    > названием этой переменной

    В С++ это скорее всего не получится.

  8. 12
    Серафим Москвин ответил:

    что есть textBox1.Text? мое поле ввода?

  9. 11
    Серафим Москвин ответил:

    все кроме udatedata юзал

  10. 10
    Cyber Max ответил:

    >> файл не создаётся
    Кто то программировать просто не умеет!

    >> CString name=textBox1.Text;
    Как Вы уверены что в textBox1.Text – Вашь текст? UpdateData не забыл ?

    >>fp=fopen(name,"w");
    функция fopen принимает const char * а неCString!!! Чтобы превратить одно в другое как миминум нужно применить оператор (LPCTSRT)name – это два…

    Есть еще такая замечательная вещь как проверка ошибок. И получение кода ошибки.

    И наконец юзай WinAPI функции CreateFile, а не потоковый ввод/вывод.

  11. 9
    Виталий Якименко ответил:

    В смысле не приносит результата ? 0_о

  12. 8
    Серафим Москвин ответил:

    файл не создаётся

  13. 7
    Серафим Москвин ответил:

    желаю,но в данном случае вышенаписанный код не подходит

  14. 6
    Серафим Москвин ответил:

    точнее подходит, но не приносит результата

  15. 5
    Денис Лисов ответил:

    То есть ничем, кроме MFC, пользоваться не желаете?

  16. 4
    Серафим Москвин ответил:

    я в MFC делаю а не в WINAPI

  17. 3
    Виталий Якименко ответил:

    FILE *fp;
    CString name=textBox1.Text;
    fp=fopen(name,"w");

    Как то так….

  18. 2
    Серафим Москвин ответил:

    мне надо создать файл с названием этой переменной

  19. 1
    Серега Абрамян ответил:

    через поток…
    открываешь поток а потом туда записываешь значение переменной

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.