Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39

Save and Load Strings to EditBox or ListBox

01.05.2014, 23:48. Показов 2536. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Потихоньку во всём разобрался как работать со строками, с массивами, с EditBox и ListBox , с диалогами.
Помогите ещё разобраться с темой открытия и сохранения файлов (*.txt) .
Всё что смог найти в Гуугле по WinApi на эту тему (пример ниже), мне не достаточно чтобы понять смысл вего происходящего и выполнить все мои задачи.

Ответьте пожайлуста кто может по одному вопросику.
Важно чтобы все боксы находилось не в диалогах а в главном окне !!!

1. Как тоже самое загружать выгружать в ListBox ?
2. Есть ли третий вариант в WinApi где ВСЁ делается построчно (нужен код и куда его вставлять).
3. Как поместить произвольную строку из выбранного файла (например третью) в sString[]
4. Как изменить произвольную строку в выбранном файле (например пятую) на sVariable[]
5. Как записывать в ListBox не содержимое а имена файлов без пути и расширений.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#define ID_LOAD         201
#define ID_SAVE         202
#define ID_EXIT         203
#define ID_BT1          204
#define ID_BT2          205
#define ID_EDIT1        206
#define ID_EDIT2        207
#define ID_LIST         208
HWND hwnd,hButton1, hButton2, hEditBox1, hEditBox2, hListBox;
char szFileName[MAX_PATH] = "MyText.txt" , sString[] = "List Box", sVariable[]=""; 
void OpenFileBox(HWND hwnd)
{
   OPENFILENAME ofn;
   ZeroMemory(&ofn, sizeof(ofn)); 
   ofn.lStructSize = sizeof(ofn); 
   ofn.hwndOwner = hwnd; 
   ofn.lpstrFilter = "Text Datei (*.txt)\0*.txt\0" 
   "Alle Dateien (*.*)\0*.*\0";
   ofn.lpstrFile = szFileName; 
   ofn.nMaxFile = MAX_PATH; 
   ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; 
   ofn.lpstrDefExt = "txt"; 
   if(GetOpenFileName(&ofn)) 
   {MessageBox(NULL, "Load File", "LOAD", 0);
   }
}
 
void SaveFileBox(HWND hwnd)
{
   OPENFILENAME ofn;
   ZeroMemory(&ofn, sizeof(ofn)); 
   ofn.lStructSize = sizeof(ofn); 
   ofn.hwndOwner = hwnd; 
   ofn.lpstrFilter = "Text Datei (*.txt)\0*.txt\0" 
   "Alle Dateien (*.*)\0*.*\0";
   ofn.lpstrFile = szFileName; 
   ofn.nMaxFile = MAX_PATH; 
   ofn.lpstrDefExt = "txt"; 
   ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | 
   OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;                
   if(GetSaveFileName(&ofn)) 
   {MessageBox(hwnd, "File saved", "SAVE", 0); 
   }
}
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) 
{   switch(Message) 
    {
        case WM_CREATE: 
        {    HMENU hmenu = CreateMenu(); 
             HMENU hfile = CreateMenu();
             AppendMenu(hmenu, MF_POPUP, (UINT_PTR)hfile,"File");
             AppendMenu(hfile, MF_STRING, ID_LOAD,"Load");
             AppendMenu(hfile, MF_STRING, ID_SAVE,"Save");
             AppendMenu(hfile, MF_STRING, ID_EXIT,"Exit");       
             SetMenu(hwnd, hmenu); 
             
             CreateWindow("static", "Edit Box 1", WS_VISIBLE | WS_CHILD,
             10,10,80,20, hwnd, NULL, NULL, NULL); 
             CreateWindow("static", "Edit Box 2", WS_VISIBLE | WS_CHILD,
             10,95,80,20, hwnd, NULL, NULL, NULL); 
             CreateWindow("static", "List Box", WS_VISIBLE | WS_CHILD,
             400,10,80,20, hwnd, NULL, NULL, NULL); 
             
             hButton1=CreateWindow("button", "Button 1", WS_VISIBLE | WS_CHILD,
             230,70,100,30, hwnd, (HMENU) ID_BT1, NULL, NULL); 
             hButton2=CreateWindow("button", "Button 2", WS_VISIBLE | WS_CHILD,
             230,150,100,30, hwnd, (HMENU) ID_BT2, NULL, NULL); 
             
             hEditBox1=CreateWindow("edit", szFileName, WS_VISIBLE | WS_CHILD | 
             WS_HSCROLL | WS_BORDER | ES_MULTILINE | 
             ES_AUTOVSCROLL | ES_AUTOHSCROLL,
             10,40,200,40, hwnd, (HMENU) ID_EDIT1, NULL, NULL);
             
             hEditBox2=CreateWindow("edit", "Edit Box 2", WS_VISIBLE | WS_CHILD | 
             WS_VSCROLL | WS_HSCROLL | WS_BORDER | ES_MULTILINE | 
             ES_AUTOVSCROLL | ES_AUTOHSCROLL,
             10,120,200,120, hwnd, (HMENU) ID_EDIT2, NULL, NULL);
             
             hListBox = CreateWindow("listbox", "", WS_VISIBLE | WS_CHILD | 
             WS_VSCROLL | WS_HSCROLL | WS_BORDER | ES_AUTOVSCROLL | LBS_DISABLENOSCROLL, 
             350, 40, 200, 200, hwnd, (HMENU) ID_LIST, NULL, NULL); 
             SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)&sString);       
        break;
        }
        
        case WM_COMMAND: 
        {   switch(LOWORD(wParam))
               {
                  case ID_LOAD: 
                  {
                    OpenFileBox(hwnd);  
                      int iFileSize;
                      FILE *fz;
                      char *buffer = NULL;
                      fz = fopen(szFileName, "rb");
                      if(fz != NULL) 
                      {
                      fseek(fz, 0, SEEK_END);
                      iFileSize = ftell(fz);
                      buffer = (char*)malloc(iFileSize);
                      fseek(fz, 0, SEEK_SET);
                      fread(buffer, 1, iFileSize, fz);
                      fclose(fz);
                      }
                    SendMessage(hEditBox2, WM_SETTEXT, (WPARAM)1, (LPARAM)&*buffer);
                    free(buffer);
                   break;//ID_LOAD 
                  }
                  
                  case ID_SAVE: 
                  {
                      SaveFileBox(hwnd); 
                        FILE *fz;
                        char *buffer = NULL;
                        int iLength; 
                        iLength = GetWindowTextLength(hEditBox2); 
                        buffer = (char*)malloc(iLength); 
                        GetWindowText(hEditBox2, buffer, iLength+1); 
                        fz = fopen(szFileName, "wb");
                        fwrite(buffer, 1, iLength, fz);
                        fclose(fz); 
                        free(buffer); 
                   break;//ID_SAVE 
                  } 
                  
                  case ID_BT1: 
                  {
                    OpenFileBox(hwnd); 
                    HANDLE hFile;
                    hFile = CreateFile(szFileName, GENERIC_READ,
                    FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); 
                      if(hFile != INVALID_HANDLE_VALUE) 
                      {
                      DWORD dwFileSize; 
                      dwFileSize = GetFileSize(hFile, NULL); 
                        if(dwFileSize != 0xFFFFFFFF)
                        {
                        LPSTR pszFileText; 
                        pszFileText =(char *) GlobalAlloc(GPTR, dwFileSize + 1);
                          if(pszFileText != NULL)
                          {  
                          DWORD dwRead; 
                             if(ReadFile( hFile, pszFileText, dwFileSize, &dwRead, NULL ))
                             {
                             pszFileText[dwFileSize] = '\0';
                               if(SetWindowText(hEditBox2, pszFileText))
                               { 
                               }//if(SetWindowText(hEditBox2, pszFileText)) 
                             }//if(ReadFile( hFile, pszFileText, dwFileSize, &dwRead, NULL ))
                           }//if(pszFileText != NULL)  
                        }//if(dwFileSize != 0xFFFFFFFF)   
                      CloseHandle(hFile);
                      }//if(hFile != INVALID_HANDLE_VALUE) 
                  break;
                  }//ID_BT1  
                  
                  case ID_BT2: 
                  {
                      SaveFileBox(hwnd); 
                      HANDLE hFile;
                      hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL,
                      CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
                        if(hFile != INVALID_HANDLE_VALUE)
                        {
                         DWORD dwTextLength; 
                         dwTextLength = GetWindowTextLength(hEditBox2); 
                           if(dwTextLength > 0) 
                           {
                           LPSTR pszText; 
                           DWORD dwBufferSize = dwTextLength + 1; 
                           pszText = (char *) GlobalAlloc(GPTR, dwBufferSize);
                             if(pszText != NULL)
                             {
                              if(GetWindowText(hEditBox2, pszText, dwBufferSize))
                              {
                              DWORD dwWritten;
                              if(WriteFile(hFile,pszText,dwTextLength,&dwWritten, NULL ))
                              { 
                              }//if(WriteFile(hFile,pszText,dwTextLength,&dwWritten, NULL ))
                             }//if(GetWindowText(hEdit, pszText, dwBufferSize))
                             GlobalFree(pszText); 
                             }//if(pszText != NULL)
                           }//if(dwTextLength > 0) 
                        CloseHandle(hFile);
                        }//if(hFile != INVALID_HANDLE_VALUE) 
                   break;
                  }//ID_BT2
                  
                  case ID_EXIT:  
                     int iMesBox=MessageBox(NULL, "Save File ?","WARNING", MB_YESNO|MB_ICONEXCLAMATION);
                     if(iMesBox==IDYES){PostMessage(hwnd, WM_CLOSE, 0, 0);}
                     else {PostMessage(hwnd, WM_CLOSE, 0, 0);}
                  break;//ID_EXIT
               }//switch ( WM_COMMAND )
        break;//WM_COMMAND
        }
        
        case WM_CLOSE: 
        {   DestroyWindow(hwnd);
            break;
        }
 
        case WM_DESTROY: 
        {   PostQuitMessage(0);
            break;
        }
 
        default:
            return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{   MSG Msg;
    WNDCLASSEX wc;
    memset(&wc,0,sizeof(wc));
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.lpfnWndProc   = WndProc;
    wc.hInstance     = hInstance;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszClassName = "WindowClass";
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);
 
    if(!RegisterClassEx(&wc)) 
    {   MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;
    }
    hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
        40,50,600,320, NULL, NULL, hInstance, NULL);
 
    while(GetMessage(&Msg, NULL, 0, 0) > 0) { 
        TranslateMessage(&Msg); 
        DispatchMessage(&Msg);
    }
    return Msg.wParam;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.05.2014, 23:48
Ответы с готовыми решениями:

Функции save и load
помогите пожалуйста! нужно дописать в программу функции, чтобы программа могла сохранять массив и загружать его. нужно для консоли. ...

StringGrid (Save&Load)
Доброго времени! Подскажите пожалуйста как сохранить/загрузить данные в stringrid На делфи есть примеры через функцию Readln но...

Готовые компоненты для save\load состояния программы
Есть ли такие компоненты dll для C#?

8
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39
05.05.2014, 23:31  [ТС]
Добрый всем вечер.
На пятый вопрос (смотри пример выше) у меня получилось придумать.
Если кто знает как сделать проще было бы интересно взглянуть.
C++
1
2
3
4
5
6
7
8
9
10
    case ID_LOAD: 
    {OpenFileBox(hwnd);    
    memset(sString, 0, sizeof(sString));
    int i,a,b;
    int b = lstrlen(szFileName);
    for (i=b-4; i>=1; i--) {if  (szFileName[i] == '\\') {a=i; i=0; }}
    for (a; a<(b-4); a++) {sString[0+i]=szFileName[a]; i++;}
    SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)&sString) ; 
    break;
    }
На другие вопросы пока так и не получается скомпилировать код всегда выходят ошибки.
Я работаю на Win XP в Dev C++ v.4.9. Я уже перепробывал всякие функции, но они из библиотек С или С++
и я не знаю как в моём компиляторе правильно настроить парметы и какие надо добавлять #include <....>,
чтобы всё нормально компилировалось. Прочитал что Средствами Winapi почти не возможно прочитать отдельную строку из файла, поэтому надо читать файл целиком и потом "парсит" на строки.

А вообще моя задача в принципе намного проще потому, что у меня все читаемые файлы со строками фиксированной длины по 30 символов в строке.

Пожайлуста помогите немного , подскажите примерно как это всё надо "парсит" как искать конец строки и как начинать читать файл не сначала а дальше. Примного заранее всем кто откликнется благодарен.
0
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39
10.05.2014, 00:42  [ТС]
Доброго времени суток.
Получилось немного.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <fstream>
.........                  
case LOAD: 
{
OpenFileBox(hwnd);
std::ifstream file_stream(szFileName, std::ios::in);
if (file_stream)
{std::string string_input;
while (std::getline(file_stream, string_input)) 
{
SendMessage(hListBox, LB_ADDSTRING, 0, reinterpret_cast<LPARAM>(string_input.c_str())); 
}
file_stream.close(); 
}
else
{MessageBox(hwnd, "No File", "Load File", MB_OK | MB_ICONERROR);
return 0;
}
break;
}
Подскажите пожайлуста как сделать без while, чтобы толко заданные номера строк вводить в Listbox и в Editbox.
И кто знает как выводить по одной строке из Listbox и Editbox в заданные номера строк в файле.
ПОЖАЙЛУСТА помогите чайнику.
0
 Аватар для oxyfat
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
10.05.2014, 01:26
Bronzel, вряд-ли - Ваш Подход сработает.
Ведь - Вы - в какой-то степени программист...
Естественно, "кодеры" разные бывают, но ведь Вы-же понимаете, что Глупо ожидать ответа.
- не из-за того, что Не Желают Помочь - Вам, а - (как-бы Точнее Высказать...
- ВЫ хотите, чтобы без Опыта - стать Опытным.
- Так не бывает.
0
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39
10.05.2014, 10:42  [ТС]
Да вы правы "Глупо ожидать ответа" наверное действительно уже задолб..ли эти чайники с тупыми вопросами как сделать 2+2. Но всё-же не проще было бы ответить кодом (ниже) а не разглагольствовать по поводу опыта (когда люди ходят на работу дома жена дети и программируют как хобби), и таких вопросов будет намного меньше.
C++
1
2
3
4
5
int iIndex;  // номер строки
SendMessage(hList, LB_DELETESTRING , iIndex, (LPARAM) 0);   //удалить
memset(sString, 0, sizeof(sString));//очистить
wsprintf(sString,"%d_blabla_%s", iIndex, sVariable) ; //занести
SendMessage(hList, LB_INSERTSTRING, iIndex, (LPARAM)&sString);  //вставить
0
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39
12.05.2014, 23:26  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
case ID_BT4: // Save ListBox to File
                  {
                  iFilter=0;
                  SaveFileBox(hwnd);
                  FILE *fz;
                  int iLength=0; 
                  iNrStr=SendMessage(hListBox, LB_GETCOUNT , 0,0);
                  for (iIndex=0; iIndex<iNrStr; iIndex++)
                  {fz = fopen(szFileName, "a+b");
                  SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)&sString);
                  wsprintf(sVariable, "%s\r\n", sString);
                  iLength = lstrlen(sVariable);
                  fwrite(sVariable, 1, iLength, fz);
                  fclose(fz);
                  }
                  break;
                  }
Добавлено через 39 минут
Доброго времени суток.
В ответ на первый вопрос (у меня работает) получилось с выгрузкой из Listbox в файл.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
case ID_SAVE: // Save ListBox to File
{
SaveFileBox(hwnd);
FILE *fz;
int iLength=0; 
iNrStr=SendMessage(hListBox, LB_GETCOUNT , 0,0);
for (iIndex=0; iIndex<iNrStr; iIndex++)
{fz = fopen(szFileName, "a+b");
SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)&sString);
wsprintf(sVariable, "%s\r\n", sString);
iLength = lstrlen(sVariable);
fwrite(sVariable, 1, iLength, fz);
fclose(fz);
}
break;
}
В ответ на другие вопросы можно поизвращаться путём чтения файла в Listbox ( case ID_LOAD: )
затем SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)&sString);
потом wsprintf(sVariable, "%s_la_la_la", sString);
далее SendMessage(hListBox, LB_INSERTSTRING, iIndex, (LPARAM)&sVariable);
и наконец снова перезаписать всё в файл ( case ID_SAVE: ) .

Но я то спрашивал есть ли какие либо другие (более прямые) пути используя только #include <windows.h>.
По поводу загрузки текста (#include <fstream> ...case LOAD: ...) вроде тоже работает, но может кто подскажет другой вариант (без этих std::ifstream) используя только WinApi.
0
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39
18.05.2014, 18:25  [ТС]
Доброго времени суток.
Люди (профессионалы)!!! подскажите пожайлуста где посмотреть информацию про символы: & , * которые стоят перед переменными и в функциях, когда и как правильно их надо применять.
Разобрался маленько с моими вопросами но может ещё кто подскажет (код смотри ниже) есть ли где ошибки в моих вариантах и какой надёжнее.
Подскажите ещё самое красивое решение на ID_BT15 , ID_BT16.
PS. Хотя я знаю что глупо спрашивать всё равно никто не ответит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
#include <windows.h>
#include <fstream>
//#include <stdio.h>
#define ID_LOAD         201
#define ID_SAVE         202
#define ID_EXIT         203
#define ID_ALL          205
#define ID_TXT          206
#define ID_EDIT1        301
#define ID_EDIT2        302
#define ID_LIST         303
#define ID_RESET1       304
#define ID_RESET2       305
#define ID_RESET3       306
#define ID_BT1          401
#define ID_BT2          402
#define ID_BT3          403
#define ID_BT4          404
#define ID_BT5          405
#define ID_BT6          406
#define ID_BT7          407
#define ID_BT8          408
#define ID_BT9          409
#define ID_BT11         501
#define ID_BT12         502
#define ID_BT13         503
#define ID_BT14         504
#define ID_BT15         505
#define ID_BT16         506
#define ID_BT17         507
#define ID_BT18         508
 
HWND hwnd, hEditBox1, hEditBox2, hListBox, hNrStr;
char szClassName[ ] = "Hi", szFileName[260] = "haha.txt", szTitle[260] = "" , sString[ ] = "ListBox", sVariable[ ]=""; 
int iNrStr,iFilter,iIndex, iLength,iMesBox;
void OpenFileBox(HWND hwnd);
void SaveFileBox(HWND hwnd);
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil)
{   HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS; 
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0; 
    wincl.cbWndExtra = 0;
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
 
    if (!RegisterClassEx (&wincl))
        return 0;
    hwnd = CreateWindowEx (0, szClassName, "Load Save to EditBox and ListBox", WS_OVERLAPPEDWINDOW,
           10, 50, 800, 400, HWND_DESKTOP, NULL, hThisInstance, NULL );
    ShowWindow (hwnd, nFunsterStil);
    while (GetMessage (&messages, NULL, 0, 0))
    {     TranslateMessage(&messages);
          DispatchMessage(&messages);
    }
    return messages.wParam;
}
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)  
    {
        case WM_CREATE: 
        {    HMENU hmenu = CreateMenu(); 
             HMENU hfile = CreateMenu();
             HMENU hall = CreateMenu();
             HMENU htxt = CreateMenu();
             HMENU hblk = CreateMenu();
             AppendMenu(hmenu, MF_POPUP, (UINT_PTR)hfile,"File");
             AppendMenu(hfile, MF_STRING, ID_LOAD,"Load");
             AppendMenu(hfile, MF_STRING, ID_SAVE,"Save");
             AppendMenu(hfile, MF_STRING, ID_EXIT,"Exit"); 
             AppendMenu(hmenu, MF_POPUP, ID_ALL, "Filter ALL");
             AppendMenu(hmenu, MF_POPUP, ID_TXT,"Filter TXT");
             SetMenu(hwnd, hmenu); 
             
             CreateWindow("static", "Edit Box 1", WS_VISIBLE | WS_CHILD,
             120,10,80,20, hwnd, NULL, NULL, NULL); 
             CreateWindow("static", "Edit Box 2", WS_VISIBLE | WS_CHILD,
             120,100,80,20, hwnd, NULL, NULL, NULL); 
             CreateWindow("static", "List Box", WS_VISIBLE | WS_CHILD,
             500,10,80,20, hwnd, NULL, NULL, NULL); 
             
             CreateWindow("button", "1.Reset Edit 1", WS_VISIBLE | WS_CHILD,
             220,10,100,20, hwnd, (HMENU) ID_RESET1, NULL, NULL); 
             CreateWindow("button", "2.Reset Edit 2", WS_VISIBLE | WS_CHILD,
             220,100,100,20, hwnd, (HMENU) ID_RESET2, NULL, NULL); 
             CreateWindow("button", "3.Reset List", WS_VISIBLE | WS_CHILD,
             680,10,100,20, hwnd, (HMENU) ID_RESET3, NULL, NULL); 
             
             CreateWindow("button", "1.Add File Name ", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350,10,140,30, hwnd, (HMENU) ID_BT1, NULL, NULL); 
             CreateWindow("button", "2.Add File Title", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350, 50,140,30, hwnd, (HMENU) ID_BT2, NULL, NULL); 
             CreateWindow("button", "3.Load 1:1 fstream", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350,90,140,30, hwnd, (HMENU) ID_BT3, NULL, NULL); 
             CreateWindow("button", "4.L 15 Sim ReadFile", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350,130,140,30, hwnd, (HMENU) ID_BT4, NULL, NULL); 
             CreateWindow("button", "5.L 15 Simvol fread", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350,170,140,30, hwnd, (HMENU) ID_BT5, NULL, NULL); 
             CreateWindow("button", "6.S 1:1 fopen fwrite", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350,220,140,30, hwnd, (HMENU) ID_BT6, NULL, NULL); 
             CreateWindow("button", "7.Save 1:1 WriteFile", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350,260,140,30, hwnd, (HMENU) ID_BT7, NULL, NULL); 
             CreateWindow("button", "8.S 1:1 fopen fprintf", WS_VISIBLE | WS_CHILD | BS_LEFT,
             350,300,140,30, hwnd, (HMENU) ID_BT8, NULL, NULL); 
             
             CreateWindow("button", "11.Load Edit fopen  fread", WS_VISIBLE | WS_CHILD | BS_LEFT  | BS_MULTILINE,
             10,10,100,40, hwnd, (HMENU) ID_BT11, NULL, NULL); 
             CreateWindow("button", "12.Load Edit ReadFile", WS_VISIBLE | WS_CHILD | BS_LEFT  | BS_MULTILINE,
             10,60,100,40, hwnd, (HMENU) ID_BT12, NULL, NULL); 
             CreateWindow("button", "13.Save Edit fopen  fwrite", WS_VISIBLE | WS_CHILD | BS_LEFT  | BS_MULTILINE,
             10,110,100,40, hwnd, (HMENU) ID_BT13, NULL, NULL); 
             CreateWindow("button", "14.Save Edit WriteFile", WS_VISIBLE | WS_CHILD | BS_LEFT  | BS_MULTILINE,
             10,160,100,40, hwnd, (HMENU) ID_BT14, NULL, NULL); 
             CreateWindow("button", "15.Edit to List", WS_VISIBLE | WS_CHILD | BS_LEFT  | BS_MULTILINE,
             10,230,100,40, hwnd, (HMENU) ID_BT15, NULL, NULL); 
             CreateWindow("button", "16.List to Edit", WS_VISIBLE | WS_CHILD | BS_LEFT  | BS_MULTILINE,
             10,290,100,40, hwnd, (HMENU) ID_BT16, NULL, NULL); 
             
             hNrStr=CreateWindow("button", "9.S fwrite", WS_VISIBLE | WS_CHILD | BS_RIGHT,
             600,10,70,20, hwnd, (HMENU) ID_BT9, NULL, NULL); 
             
             hEditBox1=CreateWindow("edit", szFileName, WS_VISIBLE | WS_CHILD | 
             WS_HSCROLL | WS_BORDER | ES_MULTILINE | ES_AUTOHSCROLL,
             120,40,220,40, hwnd, (HMENU) ID_EDIT1, NULL, NULL);
             
             hEditBox2=CreateWindow("edit", "Edit Box 2", WS_VISIBLE | WS_CHILD | 
             WS_VSCROLL | WS_HSCROLL | WS_BORDER | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL,
             120,130,220,200, hwnd, (HMENU) ID_EDIT2, NULL, NULL);
             
             hListBox = CreateWindow("listbox", "", WS_VISIBLE | WS_CHILD | 
             WS_VSCROLL |WS_BORDER | ES_AUTOVSCROLL | LBS_DISABLENOSCROLL, 
             500, 40, 280, 300, hwnd, (HMENU) ID_LIST, NULL, NULL); 
             SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)&sString);       
        break;
        }
        
        case WM_COMMAND: 
        {   switch(LOWORD(wParam))
               {
                  case ID_EXIT: 
                  {iMesBox=MessageBox(NULL, "Save File und Exit?","WARNING", MB_YESNO|MB_ICONEXCLAMATION);
                  if(iMesBox==IDYES)
                  {SaveFileBox(hwnd);
                  MessageBox(hwnd, "File is saved", " SAVE", MB_OK);
                  PostQuitMessage (0);
                  }
                  else {}
                  break;
                  }//ID_EXIT
                  
                  case ID_RESET1: //Reset EditBox 1
                  {SetWindowText(hEditBox1, szTitle);
                  break;
                  }//ID_RESET1
                  
                  case ID_RESET2: //Reset EditBox 2
                  {SetWindowText(hEditBox2, "");
                  break;
                  }//ID_RESET2
                  
                  case ID_RESET3: //Reset ListBox
                  {iNrStr=SendMessage(hListBox, LB_GETCOUNT , 0, (LPARAM) 0);
                  wsprintf(sVariable,"%d",iNrStr);
                  DestroyWindow(hNrStr);
                  hNrStr=CreateWindow("button", sVariable, WS_VISIBLE | WS_CHILD | BS_LEFT,
                  600,10,70,20, hwnd, (HMENU) ID_BT9, NULL, NULL); 
                  iMesBox=MessageBox(NULL, "Reset ListBox ?", "WARNING", MB_YESNO);
                  if(iMesBox==IDYES){SendMessage(hListBox, LB_RESETCONTENT , 0, (LPARAM) 0);}
                  break;
                  }//ID_RESET3
                  
                  case ID_BT11: //Load File to EditBox Funktion fread
                  {iFilter=0;
                  OpenFileBox(hwnd);
                  int iFileSize;
                  FILE *fz;
                  char *buffer = NULL;
                  fz = fopen(szFileName, "rb");
                  if(fz != NULL) 
                  {
                  fseek(fz, 0, SEEK_END);
                  iFileSize = ftell(fz);
                  buffer = (char*)malloc(iFileSize);
                  fseek(fz, 0, SEEK_SET);
                  fread(buffer, 1, iFileSize, fz);
                  fclose(fz);
                  }
                  SetWindowText(hEditBox2, buffer);
                  free(buffer);
                   break;
                  }//ID_BT11
                  
                  case ID_BT12: //Load File to EditBox Funktion ReadFile
                  {iFilter=0;
                  OpenFileBox(hwnd);
                  HANDLE hFile;
                  hFile = CreateFile(szFileName, GENERIC_READ,
                  FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); 
                  DWORD dwFileSize, dwRead;
                  dwFileSize = GetFileSize(hFile, NULL); 
                  LPSTR pszFileText; 
                  pszFileText =(LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);
                  //or pszFileText =(char*)GlobalAlloc(GPTR, dwFileSize + 1);
                  ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL);
                  //pszFileText[dwFileSize] = 0;//не знаю зачем ? без этой строки вроде тоже работает
                  SetWindowText(hEditBox2, pszFileText);
                  GlobalFree(pszFileText);
                  CloseHandle(hFile);
                  break;
                  }//ID_BT12
                  
                  case ID_BT13: //Save EditBox to File Funktion fwrite
                  {iFilter=0;
                  SaveFileBox(hwnd);
                  FILE *fz;
                  char *buffer = NULL;
                  int iLength; 
                  iLength = GetWindowTextLength(hEditBox2); 
                  buffer = (char*)malloc(iLength); 
                  GetWindowText(hEditBox2, buffer, iLength+1); 
                  fz = fopen(szFileName, "wb");
                  fwrite(buffer, 1, iLength, fz);
                  fclose(fz); 
                  free(buffer); 
                  break;
                  }//ID_BT13
                  
                  case ID_BT14: //Save EditBox to File  Funktion  WriteFile
                  {iFilter=0;
                  SaveFileBox(hwnd);
                  HANDLE hFile;
                  hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL,
                  CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
                  DWORD dwTextLength, dwWritten; 
                  dwTextLength = GetWindowTextLength(hEditBox2);
                  LPSTR pszText; 
                  pszText=(char*)GlobalAlloc(GPTR, dwTextLength+1);
                  GetWindowText(hEditBox2, pszText, dwTextLength+1);
                  WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL);
                  GlobalFree(pszText); 
                  CloseHandle(hFile);
                  break;
                  }//ID_BT14
                  
                  case ID_BT15:
                  {
                  break;
                  }//ID_BT15
                  
                  case ID_BT16:
                  {
                  break;
                  }//ID_BT16
 
                  case ID_BT1: //Load Name to ListBox
                  {iFilter=1;
                  OpenFileBox(hwnd);
                  memset(sString, 0, sizeof(sString));
                  int i,a,b;
                  b = lstrlen(szFileName);
                  for (i=b-4; i>=1; i--){if (szFileName[i] == '\\') {a=i; i=0; }}
                  for (a; a<b-4; a++) {sString[0+i]=szFileName[a];i++;}
                  SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)sString);
                  break;
                  }//ID_BT1
                  
                  case ID_BT2://Load FileTitle to ListBox
                  {iFilter=1;
                  OpenFileBox(hwnd);
                  SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)&szTitle); 
                  break;
                  }//ID_BT2
                  
                  
                  case ID_BT3:  // Load 1:1 File to ListBox Funktion file_stream
                  {iFilter=1;                       
                  OpenFileBox(hwnd);
                  //#include <fstream>
                  std::ifstream file_stream(szFileName, std::ios::in);
                    if (file_stream)
                    {std::string string_input;
                        while (std::getline(file_stream, string_input)) 
                        {
                        SendMessage(hListBox, LB_ADDSTRING, 0, reinterpret_cast<LPARAM>(string_input.c_str())); 
                        }
                        file_stream.close(); 
                    }
                    else {return 0;}  
                  break;
                  }//ID_BT3
              
                  case ID_BT4:// Load 15 to ListBox  Funktion ReadFile
                  {iFilter=0;
                  OpenFileBox(hwnd); 
                  HANDLE hFile;
                  hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL, 
                  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);  
                  if(hFile != INVALID_HANDLE_VALUE) 
                  {DWORD dwRead; int i; 
                  for (i=1; i<1000; i++) // возможное число строк файла
                  {ReadFile(hFile, &sString, 15, &dwRead, NULL);
                  if (dwRead < 15 ) // Мы достигли конца файла. 
                  {i=1001;
                  }//if (dwRead < 15 ) 
                  else
                  {SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)&sString);
                  ReadFile(hFile, &sString, 2, &dwRead, NULL);}
                  }//for (i=1; i<7; i++)
                  }//if(hFile != INVALID_HANDLE_VALUE) 
                  CloseHandle(hFile);
                  break;
                  } //ID_BT4
                  
                  case ID_BT5: // Load File 15 SimvolString  to ListBox  fread
                  {iFilter=0;
                  OpenFileBox(hwnd);
                  FILE *stream;
                  char list[16]="";
                  int  i, numread, numwritten;
                  stream = fopen(szFileName, "r+t" );
                  for (i=1; i<1000; i++){
                  numread = fread( list, 1,15, stream );
                  if(numread != 15) {i=1001;} 
                  else{SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)list);
                  fread( list, 1,1, stream );}
                  }
                  fclose( stream );
                  break;
                  }//ID_BT5:
                  
                  case ID_BT6:// Save 1:1 ListBox to File  Funktion  fwrite
                  {iFilter=0;
                  SaveFileBox(hwnd);
                  FILE *fz;
                  int iLength=0; 
                  iNrStr=SendMessage(hListBox, LB_GETCOUNT , 0,0);
                  for (iIndex=0; iIndex<iNrStr; iIndex++)
                  {fz = fopen(szFileName, "a+b");
                  SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)&sString);
                  wsprintf(sVariable, "%s\r\n", sString);
                  iLength = lstrlen(sVariable);
                  fwrite(sVariable, 1, iLength, fz);
                  fclose(fz);
                  }               
                  break;
                  }//ID_BT6 
                  
                  case ID_BT7:// Save 1:1 ListBox to File  Funktion  WriteFile
                  {iFilter=0;
                  SaveFileBox(hwnd);
                  HANDLE hFile;
                  hFile = CreateFile(szFileName, GENERIC_WRITE, 0, NULL,
                  CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
                  int iLength=0;
                  LPSTR psFileText; 
                  DWORD dwTextLength, dwWritten; 
                  iNrStr=SendMessage(hListBox, LB_GETCOUNT , 0,0);
                  for (iIndex=0; iIndex<iNrStr; iIndex++)
                  {
                  iLength = SendMessage(hListBox, LB_GETTEXTLEN, iIndex, 0); 
                  psFileText =(LPSTR)GlobalAlloc(GPTR, iLength + 2); 
                  SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)psFileText); 
                  wsprintf(sVariable,"%s\r\n",psFileText);
                  WriteFile(hFile, sVariable, iLength+2, &dwWritten, NULL);
                  }
                  GlobalFree(psFileText);
                  CloseHandle(hFile);
                  break;
                  }//ID_BT7 
                  
                  case ID_BT8:// Save 1:1 ListBox to File  Funktion  fopen fprintf
                  {iFilter=0;
                  SaveFileBox(hwnd); 
                  FILE *fp;
                  char *pstBuffer = NULL;
                  fp = fopen(szFileName, "wt+");
                  iNrStr = SendMessage(hListBox, LB_GETCOUNT , 0,0);
                  for (iIndex=0; iIndex<iNrStr; iIndex++)
                  {iLength = SendMessage(hListBox, LB_GETTEXTLEN, iIndex, 0); 
                  pstBuffer = (char*)malloc(iLength+1);
                  pstBuffer[iLength] = '\0';
                  SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)pstBuffer); 
                  fprintf(fp,"%s\n",pstBuffer);              
                  };
                  fclose(fp);
                  break;
                  }//ID_BT8 
                  
                  case ID_BT9:// Save 1:1 ListBox to File  Funktion  fopen fwrite
                  {iFilter=0;
                  SaveFileBox(hwnd); 
                  FILE *fOutFile;
                  char *cWriteBuffer = NULL;
                  int iItenIndex=0;
                  int iItenStrLen=0;
                  char szTermStr[] = "\r\n";
                  iItenIndex = SendMessage(hListBox, LB_GETCOUNT , 0,0);
                  for (iIndex=0; iIndex<iItenIndex; iIndex++)
                  {
                  fOutFile = fopen(szFileName, "a+b");
                  iItenStrLen = SendMessage(hListBox, LB_GETTEXTLEN, iIndex, 0); 
                  cWriteBuffer =(char*)malloc((iItenStrLen)*sizeof(char));
                  SendMessage(hListBox, LB_GETTEXT, iIndex, (DWORD)((LPSTR)cWriteBuffer));
                  fwrite(cWriteBuffer,1,iItenStrLen,fOutFile);
                  fclose(fOutFile);
                  fOutFile = fopen(szFileName, "a+b");
                  fwrite(szTermStr,1,2,fOutFile);
                  fclose(fOutFile);
                  } 
                  free(cWriteBuffer);
                  break;
                  }//ID_BT9
 
               }//switch ( WM_COMMAND )
        break;//WM_COMMAND
        }
 
        case WM_DESTROY:
            PostQuitMessage (0);
            break;
        default:   
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
 
void OpenFileBox(HWND hwnd)
{
   OPENFILENAME ofn;
   ZeroMemory(&ofn, sizeof(ofn)); 
   ofn.lStructSize = sizeof(ofn); 
   ofn.hwndOwner = hwnd; 
   if(iFilter==0){ofn.lpstrFilter = "Text Datei (*.txt)\0*.txt\0";}
   else {ofn.lpstrFilter = "All Files (*.*)\0*.*\0";}
   GetWindowText(hEditBox1, szFileName, 255);
   ofn.lpstrFile = szFileName; 
   ofn.nMaxFile = sizeof(szFileName);
   ofn.lpstrFileTitle = szTitle;
   ofn.nMaxFileTitle = sizeof(szTitle);
   ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; 
   ofn.lpstrDefExt = "txt"; 
   if(GetOpenFileName(&ofn)) 
   {//MessageBox(NULL, szTitle,"OPEN", MB_OK);
   }
}
 
void SaveFileBox(HWND hwnd)
{
   OPENFILENAME ofn; 
   ZeroMemory(&ofn, sizeof(ofn)); 
   ofn.lStructSize = sizeof(ofn); 
   ofn.hwndOwner = hwnd; 
   if(iFilter==0){ofn.lpstrFilter = "Text Datei (*.txt)\0*.txt\0";}
   else {ofn.lpstrFilter = "All Files (*.*)\0*.*\0";}
   ofn.lpstrFile = szFileName; 
   ofn.nMaxFile = MAX_PATH; 
   ofn.lpstrDefExt = "txt"; 
   ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; 
   if(GetSaveFileName(&ofn)) 
   {//MessageBox(NULL, "File is saved"," SAVE", MB_OK);
   }
}
0
0 / 0 / 0
Регистрация: 04.04.2014
Сообщений: 53
18.05.2014, 18:43
Цитата Сообщение от Bronzel Посмотреть сообщение
где посмотреть информацию про символы: & , *
Смотрите про указатели. И оформите код в теги
0
1 / 1 / 0
Регистрация: 29.12.2013
Сообщений: 39
21.05.2014, 21:15  [ТС]
Всем привет.
Вот что у меня получилось (может кому интересно) у меня работает.
Правда с указателями так и не разобрался не понятно где надо ставить (LPARAM)&sString а где (LPARAM)sString ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
case ID_BT15: // Send EditBox to ListBox
                  {
                  iNrStr = SendMessage(hEditBox2, EM_GETLINECOUNT, 0, 0); 
                  for (iIndex=0; iIndex<iNrStr; iIndex++)
                  {memset(sString, 0, sizeof(sString));
                  wsprintf(sString," ");
                  SendMessage(hEditBox2, EM_GETLINE, iIndex, (LPARAM)sString);
                  SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)sString); 
                  }
                  break;
          } //ID_BT15  
                  
                  case ID_BT16: // Send ListBox to EditBox
                  {//char sString[256] = " ", sVariable[65535]=" ", sEditBox2[65535]=" "; 
                  SetWindowText(hEditBox2,"");
                  SendMessage(hListBox, LB_GETTEXT, 0, (LPARAM)&sString);
                  SendMessage(hEditBox2, WM_SETTEXT, (WPARAM)1, (LPARAM)&sString);
                  iNrStr=SendMessage(hListBox, LB_GETCOUNT , 0,0);
                  for (iIndex=1; iIndex<iNrStr; iIndex++)
                  {
                  GetWindowText(hEditBox2, sEditBox2, sizeof(sEditBox2));
                  SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)&sString);
                  wsprintf(sVariable,"%s\r\n%s", sEditBox2, sString);
                  SendMessage(hEditBox2, WM_SETTEXT, 2, (LPARAM)&sVariable);
                  }
                  break;
          }//ID_BT16
Может кто подскажет какой максимальный размер можно задать строковому массиву.
char sVariable[65535] = " "; - это МАХИМУМ или нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2014, 21:15
Помогаю со студенческими работами здесь

EditBox в ListBox-е
Хочу реализовать редактирование текста в CListCtrl, дополнительное окно вводить программу не хочу! Помогите кто-нибудь создать EditBox при...

Вытащить нужный символ из ListBox или из EditBox
Здравствуйте. Я тут набросал простую заготовку. Подскажите пожайлуста с чего начать (укажите ссылку на похожый пример или допишите мой...

Listbox save to file .txt
Когда пытаюсь сохранить все елменты листбокс в файл ткст . В файл попадает - System.Windows.Forms.ListBox+ObjectCollection ...

Конфликт между PictureBox.Load и PictureBox.Image.Save
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click Дан код. ...

перевод из CString EditBox'a в int, потом вывод массива int в другой EditBox
Программа на Visual C++ 6.0 Сильно не бить если сложно понять этот ужас. Если кому надо пояснялки могу добавить. Вопрос в следующем: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru