Foros del Web » Programación para mayores de 30 ;) » Programación General »

Manejo de archivos multiples en un dialogo comun...

Estas en el tema de Manejo de archivos multiples en un dialogo comun... en el foro de Programación General en Foros del Web. Buenas a todos: Veran tengo una duda... quiesiera yo saber de que forma puedo hacer que un dialogo comun de open file cargue mas de ...
  #1 (permalink)  
Antiguo 10/09/2005, 23:52
 
Fecha de Ingreso: agosto-2005
Mensajes: 6
Antigüedad: 18 años, 8 meses
Puntos: 0
Manejo de archivos multiples en un dialogo comun...

Buenas a todos:

Veran tengo una duda... quiesiera yo saber de que forma puedo hacer que un dialogo comun de open file cargue mas de un archivo al mismo tiempo, es decir, quiero asegurarme de que son cargados 1, o 2 o 4 archivos con la opcion ALLOWMULTISELECT... pero la verdad no encuentro de que forma puede ser esto... dejo un ejemplo de lo que tengo pero no se si es correcto.
Código:
// Permitir al usuario cargar mas de un archivo a la vez
INT32 CreateSampleROMs(HWND hDlg)
{
//	char szVROMFiles[MAX_PATH] = "";
	char szVROMFiles[4][MAX_PATH] = {{""}, {""}, {""}, {""}};

	// Copiar el string en el buffer
	LoadString(NULL, IDS_LOADVFILE, szDlgTitle, sizeof(szDlgTitle));

	ZeroMemory(&ofn, sizeof(ofn));

	ofn.lStructSize = sizeof(ofn);
	ofn.lpstrTitle = szDlgTitle;
	ofn.hwndOwner = hDlg;
//	ofn.lpstrFile = szVROMFiles;
	for (int i = 0; i < 4; i++) ofn.lpstrFile = szVROMFiles[i];
	ofn.nMaxFile = sizeof(szVROMFiles);
	ofn.Flags = OFN_EXPLORER | OFN_ALLOWMULTISELECT | OFN_NOCHANGEDIR | OFN_HIDEREADONLY;
	ofn.lpstrFilter = "BIN files (*.bin)\0*.bin\0ROM files (*.rom)\0*.rom\0All files (*.*)\0*.*\0\0";
	ofn.lpstrDefExt = "bin";
	ofn.lpstrInitialDir = ".";

	if (GetOpenFileName(&ofn) == 0) {
		LoadString(NULL, IDS_WARNING, szMsgTitleBuffer, sizeof(szMsgTitleBuffer));
		MessageBox(hDlg, "Operation aborted\nSample ROMs were not loaded", szMsgTitleBuffer, MB_OK | MB_ICONWARNING);
		return(1);
	} else {
		LoadString(NULL, IDS_INFORMATION, szMsgTitleBuffer, sizeof(szMsgTitleBuffer));
		MessageBox(hDlg, "Sample ROMs loaded\nPress OK to continue or Cancel to abort", szMsgTitleBuffer, MB_OKCANCEL | MB_ICONINFORMATION);
	}

	return(0);
}
Perdonen si esta en ingles la mayor parte... es que en realidad lo hago para mucha gente y como el ingles es universal...
Como puedo asegurarme (en caso de que esto remotamente estuviera bien) de que mis archivos son cargados correctamente?
Gracias de antemano por la ayuda
Saludos
P.D. Algunas declaraciones no estan aqui debido a que las he declarado en otros "modulos" y en el header como extern por que las uso en otros dialogos
  #2 (permalink)  
Antiguo 11/09/2005, 11:35
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
¿A que te referis con cargar bien? La funcion GetOpenFileName no carga ningun archivo, solo te devuelve los nombres de los que el usuario seleccione.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 12/09/2005, 19:20
 
Fecha de Ingreso: agosto-2005
Mensajes: 6
Antigüedad: 18 años, 8 meses
Puntos: 0
Vaya parece que estoy errado en ese concepto XD gracias por aclararlo.
Por otro lado, eso que puse es correcto o hay algo mal en mi codigo?
Saludos
  #4 (permalink)  
Antiguo 12/09/2005, 23:06
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
Cita:
Iniciado por FerchogtX
Vaya parece que estoy errado en ese concepto XD gracias por aclararlo.
Por otro lado, eso que puse es correcto o hay algo mal en mi codigo?
Saludos
sino me ekivoco, eso permite hacer multipleseleccion de archivos...
salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #5 (permalink)  
Antiguo 13/09/2005, 02:06
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por FerchogtX
Vaya parece que estoy errado en ese concepto XD gracias por aclararlo.
Por otro lado, eso que puse es correcto o hay algo mal en mi codigo?
Saludos
Aparentemente esta correcto pero como te decia antes esta funcion no "carga" ningun archivo sino que en el miembro lpstrFile estan el directorio y todos los archivos.

MSDN:
lpstrFile
"Pointer to a buffer that contains a file name used to initialize the File Name edit control. The first character of this buffer must be NULL if initialization is not necessary. When the GetOpenFileName or GetSaveFileName function returns successfully, this buffer contains the drive designator, path, file name, and extension of the selected file.
If the OFN_ALLOWMULTISELECT flag is set and the user selects multiple files, the buffer contains the current directory followed by the file names of the selected files. For Explorer-style dialog boxes, the directory and file name strings are NULL separated, with an extra NULL character after the last file name. For old-style dialog boxes, the strings are space separated and the function uses short file names for file names with spaces. You can use the FindFirstFile function to convert between long and short file names. If the user selects only one file, the lpstrFile string does not have a separator between the path and file name."

Cita:
Iniciado por aldo1982
sino me ekivoco, eso permite hacer multipleseleccion de archivos...
salu2
Este es el titulo del hilo: "Manejo de archivos multiples en un dialogo comun... "
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:02.