Подскажите, пожалуйста, если в Edit3 ввести значение, потом закрыть программу, а потом опять открыть, как сделать так, чтоб это веденное значение отображалось само, без последующего ввода? Это можно сделать только, если значение из Edit3 сохранить в файле? Или можно как-то "прописать" его в программу?
a1ss, ) что лол? Я что - то торможу в последнее время, как скрипучий тормоз с завода им. Ленинского комсомола )
В принципе можно, но это излишне. Лучше просто записать в файл. Код (Text): char Buffer[BUFFER_LENGTH]; GetDlgItemText(hDlg,IDC_EDIT3,(LPSTR)&(Buffer),BUFFER_LENGTH); HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0); if(hFile!=INVALID_HANDLE_VALUE){ DWORD Writed; WriteFile(hFile,&Buffer,BUFFER_LENGTH,&Writed,NULL); CloseHandle(hFile); } А потом просто считать при запуске с помощью ReadFile
Хочу просто создать файл, пустой. Создаю: Код (Text): char Buffer[BUFFER_LENGTH]; GetDlgItemText(hDlg,IDC_EDIT3,(LPSTR)&(Buffer),BUFFER_LENGTH); HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0); if(hFile!=INVALID_HANDLE_VALUE) { DWORD Writed; WriteFile(hFile,&Buffer,BUFFER_LENGTH,&Writed,NULL); CloseHandle(hFile); } Ошибки: Undefined symbol 'BUFFER_LENGTH' Undefined symbol 'hDlg' Undefined symbol 'IDC_EDIT3' Создаю не пустой файл: Код (Text): int BUFFER_LENGTH = 20; if(Edit3->Text != 0) {char *IDC_EDIT3 = Edit3->Text.c_str();} char Buffer[BUFFER_LENGTH]; GetDlgItemText(hDlg,IDC_EDIT3,(LPSTR)&(Buffer),BUFFER_LENGTH); HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0); if(hFile!=INVALID_HANDLE_VALUE) { DWORD Writed; WriteFile(hFile,&Buffer,BUFFER_LENGTH,&Writed,NULL); CloseHandle(hFile); } Ошибки: IDC_EDIT3 is assigned a value that is never used Constant expression required Undefined symbol 'hDlg' Undefined symbol 'IDC_EDIT3' Что то я не делаю правильно? Может заголовочный файл пропустил?
телепаты в отпуске. одно ясно - переменные и константы не определены. ну и кодес тоже не блещет разумностью. Особенно определение char* в области видимости ифа... код все таки жжот...
Я вот и не подумал что код просто вставится в исходник probka Я предположил что окно с EDIT3 у тебя диалоговое(я так-же надеюсь что EDIT3 это белый ящичек на сером окошечке ^_^) Думаю в твоём случае будет справедливо: Код (Text): HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0); if(hFile!=INVALID_HANDLE_VALUE) { DWORD Writed; WriteFile(hFile,Edit3->Text,lstrlen(Edit3->Text),&Writed,NULL); CloseHandle(hFile); } В данном случае Edit3->Text должен быть указателем на текст, который содержит сам Edit3.
Спасибо. Все работает!!! Я чуть изменил: Код (Text): HANDLE hFile=CreateFile("edit3value.txt",GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,0); if(hFile!=INVALID_HANDLE_VALUE) { DWORD Writed; WriteFile(hFile,Edit3->Text.c_str(),lstrlen(Edit3->Text.c_str()),&Writed,NULL); CloseHandle(hFile); } А вот так можно почитать: Код (Text): ifstream fin("edit3value.txt"); while(fin.get(ch)) Edit3->Text = Edit3->Text + AnsiString(ch); Да, и вот это не забыть: Код (Text): #include <fstream.h> #include <iostream.h>
probka Код что называется гыгыгы 1) в чем прикол делать запись через winapi, а читать данные через потоки С++? 2) так конечно прикольно, но может считывать строку целиком (я правильно понял что ch это char)? 3) заменить на
censored, ну, для освоения, так сказать. Надо будет мне, например, использовать только WINAPI или только потоки, глядь, половина у меня уже есть ... )) Как целиком? Я не знаю ведь, я ведь probka. Мне самое главное, чтоб исходник работал как мне надо. Третий вопрос не понял, без ".h" будет тоже самое. Я знаю, что можно не писать ".h", только условий требуемых для этого не знаю.