Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   C/C++ (http://www.forosdelweb.com/f96/)
-   -   ficheros (http://www.forosdelweb.com/f96/ficheros-583194/)

bebeme 05/05/2008 15:01

ficheros
 
debo contar el numero de caracteres de un archivo
1. cuantos son numeros
2. cuantos son letras
3. cuantos son letras minusculas
4. cuantos son letra mayusculas

despues generar dos archivos:
uno que contenga los numeros y otro las letras
por ejemplo si un archivo contiene: AabDf3jp241i2
debe generar uno con las letras y otro con los numeros asi
letras:AabDfjpi
numeros: 32412

lo de contar la cantidad de numeros y letras, ya lo hice
no he hecho lo de generar los 2 archivos. alguien sabe como diferenciar un numero de una letra?? que funcion se puede utilizar, en caso de que exista!!!
gracias.......:-)

Mephisto 05/05/2008 15:24

Re: ficheros
 
Una forma es la comparación directa, por ejemplo

Código:

if(x>='A' && x>= 'Z')
Siendo x un char, y lo mismo para los otros casos

bebeme 05/05/2008 15:39

Re: ficheros
 
oye, no entiendo la sentencia, aplicada al caso que tengo,,, por fa me la explicas,
perdona mi ignorancia
yo necesito determinar, si es un numero o una letra, y depediendo de eso se almacena en el archivo de numeros o letras respectivamente

LeOnHe4Rt 05/05/2008 15:40

Re: ficheros
 
Tb puedes jugar con la tabla ascii, a mi siempre me gusto utilizarla

a2a2 05/05/2008 15:44

Re: ficheros
 
Cita:

Iniciado por bebeme (Mensaje 2391365)
... alguien sabe como diferenciar un numero de una letra?? que funcion se puede utilizar, en caso de que exista!!!
gracias.......:-)

Están el el fichero ctype.h, en tu caso necesitas usar las funciones isdigit() y isalpha().

Mephisto 05/05/2008 15:58

Re: ficheros
 
En una variable char almacenas lo que vas leyendo de tu archivo y despues comparas

Código:


while([al leer el archivo no sea EOF]){//Lees caracter por caracter

    if((x>='A' && x>= 'Z')||(x>='a' && x>= 'z'))//El caracter leido es una letra
  {
    //Escribes x en el archivo de letras

  }
  if(x>='0' && x>= '9')//El caracter leido es un numero
  {
    //Escribe x en el archivo de numeros
  }
}

Tambien como menciona LeOnHe4Rt puedes hacerlo con el valor ascii

48 - 57 (ascii) -> del 0 al 9
65 - 90 (ascii) -> de A a Z
97 - 122 (ascii) -> de a a z


Tambien como dice a2a2, estan las funciones isdigit() y isalpha(). Al final tienes que leer cada uno de los caracteres de tu archivo y establecer cual es...

a2a2 05/05/2008 16:14

Re: ficheros
 
Mephisto, ahora que estás a tiempo corrige lo siguiente: :-D
x>='Z' por x<='Z'
x>='z' por x<='z'
x>='9' por x<='9'

Aunque sigo pensando que es mejor usar isdigit() y isalpha(), que son gratis :-)

Mephisto 05/05/2008 16:34

Re: ficheros
 
Tienes razon a2a2, puse mal la condicion... jejejejej Eso del copy-paste como que no me funciono muy bien...

Mephisto 05/05/2008 16:36

Re: ficheros
 
Va de nuevo para enmendar mi error, jajajajajaj

Código:

while([al leer el archivo no sea EOF]){//Lees caracter por caracter

    if((x>='A' && x<= 'Z')||(x>='a' && x<= 'z'))//El caracter leido es una letra
  {
    //Escribes x en el archivo de letras

  }
  if(x>='0' && x<= '9')//El caracter leido es un numero
  {
    //Escribe x en el archivo de numeros
  }
}

Gracias a2a2... y estoy tambien de acuerdo en el uso de iddigit(), y isalpha(), ya el uso de cualquiera de las dos opciones depende del gusto del programador no crees???

bebeme 05/05/2008 16:50

Re: ficheros
 
gracias!!!!
pikos pa los dosss
jajja

bebeme 05/05/2008 16:54

Re: ficheros
 
alguno de ustedes me puede ayudar con esto:
hola, lo que tengo que hacer es lo siguiente:

crear un archivo en c que realice:
1.ingresar datos nombre, apellido, codigo, sexo, dir, telefono, cedula, fecha de nacimiento
2.ordenar alfabeticamente por apellido
3.ordenar por edad
4.ingresar registros en la posicion requerida
5.eliminar un registro requerido
6. imprimir por pantalla un registro buscado por telefono
7.mostrar por pantalla el numero de registros en el archivo
8. permitir renombrar el archivo
9. ubicar el archivo en una posicion del disco deseado
10. crear 2 nuevos archivos con los registros "hombres" y "mujeres" separados

ya realice, algunos, pero no me acuerdo de los metodos de ordenamiento y no tengo ni idea como ubicar el archivo en una posicion del disco deseado, y crear los registros "hombres" y "mujeres" separados, en 2 archivos.

por favor, urgenteeeeeeeeee
quien me ayuda con un codigo, que tal vez tenga algo similar
los mas pronto posible


La zona horaria es GMT -6. Ahora son las 22:53.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.