Bonjour,
Je débute dans la programmation graphique, jusqu'à présent j'effectué de la programmation sous dos ou de la programmation sur composants.
Je dois effectuer un portage d'une application DOS en application graphique utilisant la VCL. Je n'ai pas eu de problème pour effectuer la majeure partie des modifications mais je bloque un peu là.
Je suis en train d'essayer de changer la méthode de chargement et d'enregistrement des fichiers en utilisant GetOpenFileName et GetSaveFileName.
j'arrive bien à lancer ces fenêtres mais j'aimerais savoir si il est possible d'avoir un nom de fichier par défaut à leur ouverture et si oui de quel méthode.
Mon principal problème est avec WriteFile (pour la sauvegarde) : je dois sauvegarder des tableaux de double et dans mes fichiers j'obtient que des caractères non reconnus.
Voici l'extrait du code réalisant cette partie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 OPENFILENAME ofn; HANDLE hf, hf2; DWORD dw; ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "Fichiers textes\0*.TXT\0Tous\0*.*\0"; // Filtre les fichiers ofn.nFilterIndex = 1; ofn.lpstrFile = szFile; ofn.lpstrFile[0] = '\0'; ofn.lpstrFileTitle = szFile; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = "C:\Projet"; // Chemin par défaut ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_SHOWHELP | OFN_OVERWRITEPROMPT; ofn.lpstrTitle = NULL; // modifie nom de la fenetre ofn.lpstrDefExt = ".txt"; if (GetSaveFileName(&ofn) == true) { hf = CreateFile(ofn.lpstrFile, GENERIC_WRITE, 0, (LPSECURITY_ATTRIBUTES) NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); BOOL b = WriteFile(hf, cal, sizeof(cal), &dw, NULL); if (!b) { MessageBox(NULL, "Erreur Fichier", "Impossible d'écrire dans le fichier", MB_OK); } CloseHandle(hf); }
Partager