elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  crear varios ficheros con variables
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: crear varios ficheros con variables  (Leído 2,835 veces)
gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
crear varios ficheros con variables
« en: 17 Abril 2013, 18:18 pm »

Estoy intentando crear unos ficheros donde en el nombre aparezca una versión (3 números y en algunos casos una letra, la a), la id del idioma (locale, 4 letras) y la plataforma (pc o mac). Ejemplo: "Name-123a-enUS-PC".

Aprovechando la programación, me gustaría hacerlo lo mas sencillo posible, escribiendo lo menos posible.

Tengo problemas, ya que no sé como declarar las variable que contienen varios carateres (4 en este caso), ¿como podría declarar una variable que contenga "xxXX" para luego imprimirla? ¿Se pueden guardar varios nombres en una variable e imprimirlos cuando se indique? Como no lo sé, estoy declarando una a una:

Código:
char e = 'e';
char n = 'n';
char u = 'U';
char s = 'S';

Tampoco sé como podria guardar numeros y una letra (todo junto) en una variable: "123a". He pensado en ASCII pero no me deja poner una sentencia de escape dentro:

Código:
int v1=123\97;

Tengo algo en mente pero no consigo aclararme, son varias combinaciones en lo nombres por ejemplo para crear el fichero he pensado en:

Citar
int v1=123;
int v2=123a;
char e = 'e';
char n = 'n';
char s = 's';
char u = 'U';
char s = 'S';
char p = 'P';
char c = 'C';

ofstream fs("Name-%d-%c%c%c%c-%c%c.php", v1,e,n,u,s,p,c)
fs << "<?php\nheader ("");\n?>" << endl;
fs.close();

Me faltaría crear un while y un if para cada versión, idioma y plataforma: Name-xxx-xxXX-xx


« Última modificación: 17 Abril 2013, 18:20 pm por gAb1 » En línea

pacoperico

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Re: crear varios ficheros con variables
« Respuesta #1 en: 17 Abril 2013, 21:56 pm »

¿como podría declarar una variable que contenga "xxXX" para luego imprimirla?

Si estas trabajando en C declara un arreglo de caracteres:

Código
  1. char cadena[5] = "xxXX\0";
  2. printf("%s", cadena);
  3.  

La salida en pantalla seria:

Código:
xxXX

Tampoco sé como podria guardar numeros y una letra (todo junto) en una variable: "123a". He pensado en ASCII pero no me deja poner una sentencia de escape dentro:

En una variable no puedes guardar dos tipos de datos distintos es decir, no puedes guardar datos de tipo char con datos de tipo int. Una variable char lo que guarda realmente es el numero que corresponde segun la tabla ascii con un determinado caracter.

Si quieres guardar numeros y letras en una variable has de usar una variable de tipo char:

Código
  1. char var[5] = "123a\0"
  2.  

Aqui realmente no estas guardando el dato numerico 123 mas la letra a, estas almacenando los caracteres 123.



En línea

gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: crear varios ficheros con variables
« Respuesta #2 en: 17 Abril 2013, 22:43 pm »

Gracias por explicármelo, aparte me he acordado de unas cosillas, que llevo tiempo sin programar. Prefiero hacerlo en c++

Código:
#include <iostream>
#include <fstream>
using namespace std;

main()
{
char* v[7];
v[0] = '320';
v[1] = '330';
v[2] = '330a';
v[3] = '332';
v[4] = '333';
v[5] = '333a';
v[6] = '335';
v[7] = '335a';
char* l[6];
l[0] = 'enGB';
l[1] = 'enUS';
l[2] = 'esES';
l[3] = 'esMX';
l[4] = 'frFR';
l[5] = 'deDE';
l[6] = 'ruRU';
char* p[1];
p[0] = 'PC';
p[1] = 'MAC';

for (int i = 0; i < 112; ++i)
{
ofstream fs("Fichero-%s-%s-%s.php", v[i], l[i], p[]);
fs << "<?php\nheader ("");\n?>" << endl;
fs.close();
}

Me han dicho que poner char* esta mal ya que puede apuntar donde no toca. Que mejor use std::string pero sigo sin aclararme.

Lo que necesito hacer exactamente son 112 archivos, obviamente cada uno con una versión, idioma y plataforma diferente.

Versiones son 8, tres de ellas llevan la letra a.
Locales son 7.
Y plataformas son 2.
En total son 112 archivos, cada uno con una versión, locale y plataforma especificada.
No consigo aclararme, necesito ayuda!

Gracias.
En línea

pacoperico

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Re: crear varios ficheros con variables
« Respuesta #3 en: 18 Abril 2013, 00:12 am »

Primero decirte una cosilla del ultimo codigo que has colgado:
Código:
char* v[7];

Estas declarando un arreglo de punteros de siete elementos pero inmediatamente despues cuando introduces los datos del arreglo:

Código:
v[0] = '320';
v[1] = '330';
v[2] = '330a';
v[3] = '332';
v[4] = '333';
v[5] = '333a';
v[6] = '335';
v[7] = '335a';

Estas escribiendo ocho elementos en el arreglo que habias declarado como de siete elmentos. Solo has de rectificar la declaracion del arreglo tal que asi:

Código:
char* v[8];

Y lo mismo te ocurre con los siguientes arreglos

Volviendo al tema, en c++ lo que puedes hacer es crear un objeto de tipo string y aprovecharte de los metodos que te ofrecen la clase string como podria ser string.append(). Un ejemplo de lo que quiero decirte:

Código
  1. #include <string>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. string cadena;
  8.  
  9. if (so == windows)     //si el sistema operativo es windows el objeto cadena empezaria por los caracteres "win"
  10. cadena = "win";
  11. else if(so == apple)
  12. cadena = "mac";
  13.  
  14. if(idioma == espanol)   //si el idioma es espanol le anadimos al objeto cadena los caracteres "es"
  15. cadena.append("es");
  16. else if(idioma == ingles)
  17. cadena.append("eng");
  18.  
  19. return 0;
  20. }
  21.  

Si estuviesemos en windows y en ingles el objeto cadena que hemos creado tendria los siquientes caracteres "wineng".

Las condiciones que he escrito en los if y else...if son solo un ejemplo, eso ya seria en funcion de como tengas implemetando el rellenado de los nombres de tus archivos.

En línea

gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: crear varios ficheros con variables
« Respuesta #4 en: 18 Abril 2013, 01:39 am »

Gracias por tu ayuda, al final he conseguido hacer que funcione. :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
abrir varios ficheros y unirlos en una variable
PHP
drakolive 4 2,203 Último mensaje 21 Marzo 2008, 01:53 am
por drakolive
Variables globales en ficheros .h
Programación C/C++
Kherom 3 7,836 Último mensaje 20 Enero 2012, 04:04 am
por rir3760
Guardar variables en ficheros C
Programación C/C++
nyper01 5 2,992 Último mensaje 16 Diciembre 2013, 20:45 pm
por xiruko
Manejar ficheros en variables
Programación C/C++
Jano4 3 2,152 Último mensaje 24 Febrero 2016, 14:21 pm
por Jano4
ayuda con creación de varios ficheros
Programación C/C++
elcout 4 3,155 Último mensaje 30 Octubre 2020, 11:44 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines