Сохранение значения в Edit3 после работы программы

Тема в разделе "LANGS.C", создана пользователем probka, 14 апр 2008.

  1. probka

    probka New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    170
    Подскажите, пожалуйста, если в Edit3 ввести значение, потом закрыть программу, а потом опять открыть, как сделать так, чтоб это веденное значение отображалось само, без последующего ввода?

    Это можно сделать только, если значение из Edit3 сохранить в файле? Или можно как-то "прописать" его в программу?
     
  2. a1ss

    a1ss New Member

    Публикаций:
    0
    Регистрация:
    18 ноя 2007
    Сообщения:
    120
  3. probka

    probka New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    170
    a1ss, :)) что лол? Я что - то торможу в последнее время, как скрипучий тормоз с завода им. Ленинского комсомола :))
     
  4. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    В принципе можно, но это излишне.
    Лучше просто записать в файл.
    Код (Text):
    1. char Buffer[BUFFER_LENGTH];
    2. GetDlgItemText(hDlg,IDC_EDIT3,(LPSTR)&(Buffer),BUFFER_LENGTH);
    3. HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
    4. if(hFile!=INVALID_HANDLE_VALUE){
    5.  DWORD Writed;
    6.  WriteFile(hFile,&Buffer,BUFFER_LENGTH,&Writed,NULL);
    7.  CloseHandle(hFile);
    8. }
    А потом просто считать при запуске с помощью ReadFile
     
  5. a1ss

    a1ss New Member

    Публикаций:
    0
    Регистрация:
    18 ноя 2007
    Сообщения:
    120
    проще через ини файл, кури Get\SetPrivateProfileString
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Лучше в реестр.
     
  7. probka

    probka New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    170
    Хочу просто создать файл, пустой. Создаю:

    Код (Text):
    1. char Buffer[BUFFER_LENGTH];
    2.    GetDlgItemText(hDlg,IDC_EDIT3,(LPSTR)&(Buffer),BUFFER_LENGTH);
    3.    HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,
    4.    FILE_ATTRIBUTE_NORMAL,0);
    5.  
    6.    if(hFile!=INVALID_HANDLE_VALUE)
    7.    {
    8.       DWORD Writed;
    9.       WriteFile(hFile,&Buffer,BUFFER_LENGTH,&Writed,NULL);
    10.       CloseHandle(hFile);
    11.    }
    Ошибки:

    Undefined symbol 'BUFFER_LENGTH'
    Undefined symbol 'hDlg'
    Undefined symbol 'IDC_EDIT3'

    Создаю не пустой файл:

    Код (Text):
    1. int BUFFER_LENGTH = 20;
    2.  
    3.    if(Edit3->Text != 0)
    4.    {char *IDC_EDIT3 = Edit3->Text.c_str();}
    5.  
    6.    char Buffer[BUFFER_LENGTH];
    7.    GetDlgItemText(hDlg,IDC_EDIT3,(LPSTR)&(Buffer),BUFFER_LENGTH);
    8.    HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
    9.  
    10.    if(hFile!=INVALID_HANDLE_VALUE)
    11.    {
    12.       DWORD Writed;
    13.       WriteFile(hFile,&Buffer,BUFFER_LENGTH,&Writed,NULL);
    14.       CloseHandle(hFile);
    15.    }
    Ошибки:

    IDC_EDIT3 is assigned a value that is never used
    Constant expression required
    Undefined symbol 'hDlg'
    Undefined symbol 'IDC_EDIT3'

    Что то я не делаю правильно? Может заголовочный файл пропустил?
     
  8. probka

    probka New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    170
    Вроде так, не ошибаюсь.
     
  9. Rascalspb

    Rascalspb New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    46
    Адрес:
    СПб
    телепаты в отпуске. одно ясно - переменные и константы не определены. ну и кодес тоже не блещет разумностью. Особенно определение char* в области видимости ифа...

    код все таки жжот...
     
  10. a1ss

    a1ss New Member

    Публикаций:
    0
    Регистрация:
    18 ноя 2007
    Сообщения:
    120
    все свое нада с собой таскать :)

    переменные определи для начала %)
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    может стоит не тупо копипастить а подумать что делает этот код?
     
  12. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    ини рулят, реестр от лукавого билли
     
  13. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Я вот и не подумал что код просто вставится в исходник :)

    probka

    Я предположил что окно с EDIT3 у тебя диалоговое(я так-же надеюсь что EDIT3 это белый ящичек на сером окошечке ^_^)
    Думаю в твоём случае будет справедливо:
    Код (Text):
    1.    HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,
    2.    FILE_ATTRIBUTE_NORMAL,0);
    3.  
    4.    if(hFile!=INVALID_HANDLE_VALUE)
    5.    {
    6.       DWORD Writed;
    7.       WriteFile(hFile,Edit3->Text,lstrlen(Edit3->Text),&Writed,NULL);
    8.       CloseHandle(hFile);
    9.    }
    В данном случае Edit3->Text должен быть указателем на текст, который содержит сам Edit3.
     
  14. probka

    probka New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    170
    Спасибо. Все работает!!!
    Я чуть изменил:

    Код (Text):
    1. HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,
    2.    FILE_ATTRIBUTE_NORMAL,0);
    3.  
    4.    if(hFile!=INVALID_HANDLE_VALUE)
    5.    {
    6.       DWORD Writed;
    7.       WriteFile(hFile,Edit3->Text.c_str(),lstrlen(Edit3->Text.c_str()),&Writed,NULL);
    8.       CloseHandle(hFile);
    9.    }
    А вот так можно почитать:

    Код (Text):
    1. ifstream fin("edit3value.txt");
    2.  
    3.    while(fin.get(ch))
    4.  
    5.    Edit3->Text = Edit3->Text + AnsiString(ch);
    Да, и вот это не забыть:

    Код (Text):
    1. #include <fstream.h>
    2. #include <iostream.h>
     
  15. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    probka
    Код что называется гыгыгы :lol:
    1) в чем прикол делать запись через winapi, а читать данные через потоки С++?
    2)
    так конечно прикольно, но может считывать строку целиком (я правильно понял что ch это char)? ;)
    3)
    заменить на
     
  16. probka

    probka New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    170
    censored, ну, для освоения, так сказать. Надо будет мне, например, использовать только WINAPI или только потоки, глядь, половина у меня уже есть ... :)))

    Как целиком? Я не знаю ведь, я ведь probka. Мне самое главное, чтоб исходник работал как мне надо.

    Третий вопрос не понял, без ".h" будет тоже самое. Я знаю, что можно не писать ".h", только условий требуемых для этого не знаю.