Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - alexlopez91

#1
.NET (C#, VB.NET, ASP) / Ayuda treeview
17 Agosto 2017, 09:56 AM
Buenos días,

Es la primera vez que me enfrento a un treeview y necesito ayuda para meter los nodos hijos, nietos, bisnietos...dentro de los nodos padres.

Actualmente tengo una lista con los valores ordenados que recorro y en la que solo consigo meter a los padres.

Es decir, tengo una lista parecida a esta:

03 ---- AAA
031 ---- BBB
0311 ---- CCC
03111 ---- DDD
03112 ---- DDD
03113 ---- DDD
09 ---- EEE
091 ---- FFF
12 ---- GGG

Y el resultado que quiero obtener es este:

+03 ---- AAA
  +031 ---- BBB
    +0311 ---- CCC
         03111 ---- DDD
         03112 ---- DDD
         03113 ---- DDD
+09 ---- EEE
     091 ---- FFF
12 ---- GGG


Con este pequeño código comparo a los padres y los metro dentro del treeview:


        Dim valor As String = "00"

        For Each l In listavalores
            If l.ToString.Substring(0, 2) = valor.Substring(0, 2) Then
                Continue For
            Else
                TreeView1.Nodes.Add(l.ToString)
            End If
            valor = l.ToString
        Next


El resultado que obtengo así es este:

03 ---- AAA
09 ---- EEE
12 ---- GGG


El caso está en que no tengo mucha idea en como recorrer ahora para poder meter los hijos, nietos, etc. de forma ordenada y en árbol en el treeview.


¿Alguna idea? Os agradecería mucho vuestra ayuda.


Un saludo,


Muchas gracias.
#2
Programación C/C++ / Re: Ayuda ejercicio C
8 Junio 2011, 17:42 PM
Vale, gracias por contestar. Ya lo tengo bien casi todo, solo me falla que si pongo en la linea de comandos Cuenta + el nombre del fichero me llame a las tres funciones y me muestre todos los resultados. Lo que pasa que tal y como lo tengo puesto solo me muestra bien la primera opcion. Las demas no me las hace.

Por ejemplo: Si pongo Cuenta fichero.txt me cuenta bien los caracteres pero no las palabras y las lineas.

Me falla esto

if(argc==2)
{
cuenta_caracteres(f);
cuenta_lineas(f);
cuenta_palabras(f);
}

Mirad el codigo

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define ESPACIO ' '
#define TAB '\t'
#define INTRO '\n'

void MostrarAyuda();
void cuenta_caracteres(FILE *);
void cuenta_lineas(FILE *);
void cuenta_palabras(FILE *);

main(int argc, char *argv[])
{
        if(argc==1)
        {
        printf("\n\t\t\tAYUDA\n");
        MostrarAyuda();
        }
       
        FILE *f;
       
        if((f=fopen(argv[1],"r"))==NULL)
        {
        printf("\nNo se puede abrir el fichero\n");
        getchar();
        }
       
        if(argc==2)
        {
        cuenta_caracteres(f);
        cuenta_lineas(f);
        cuenta_palabras(f);
        }
       
        else if(argc==3)
        {
        if(strcmp(argv[2],"-c")==0)
        cuenta_caracteres(f);
       
        if(strcmp(argv[2],"-l")==0)
        cuenta_lineas(f);
       
        if(strcmp(argv[2],"-p")==0)
        cuenta_palabras(f);
        }
       
        fclose(f);
}

void MostrarAyuda()
{
    printf("\n-c: Cuenta el numero de caracteres del fichero\n");
    printf("\n-l: Cuenta el numero de lineas del fichero\n");
    printf("\n-p: Cuenta el numero de palabras del fichero\n");
}

void cuenta_caracteres(FILE *f)
{
    int c, cont=0;

    while((c=getc(f))!=EOF)
    {
    if(c!='\n')
    cont++;
    }
   
    printf("\n\nLos caracteres totales son %d\n",cont);
   
}

void cuenta_palabras(FILE *f)
{
    char car;
    int palabra=0;
    int i;
   
    while(car!=EOF)
    {
    car=fgetc(f);
    i++;
    if(car==ESPACIO || car==INTRO || car==TAB)
    palabra++;
    }
   
    printf("\n\nLas palabras totales son %d\n",palabra+1);
}

void cuenta_lineas(FILE *f)
{
   
    char car;
    int linea=0;
   
    while(car!=EOF)
    {
    car=fgetc(f);
    if(car=='\n')
    linea++;
    }
   
    printf("\n\nLas lineas totales son %d\n",linea+1);
}
#3
Programación C/C++ / Re: Ayuda ejercicio C
6 Junio 2011, 21:35 PM
Acabo de probar lo de escribir -c en el codigo, pero a la hora de ejecutarlo desde la linea de comandos da un error y no hace nada. A ti te funciono en Linux?
#4
Programación C/C++ / Ayuda ejercicio C
6 Junio 2011, 20:44 PM
Hola a todos.

Tengo este ejercicio que se debe ejecutar desde la linea de comandos y que se le pasan los siguientes parametros:
        -c Cuenta el nº de caracteres del fichero
   -l Cuenta el nº de líneas del fichero
        -p Cuenta el nº de palabras, donde una palabra

La sintaxis a la hora de abrirlo por la linea de comandos es la siguiente: Cuenta Nombre_Fichero [-c][-l][-p]

He hecho el siguiente codigo, pero a la hora de abrirlo nunca me hace nada.
¿Alguien sabe que ocurre?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define ESPACIO ' '
#define TAB '\t'
#define INTRO '\n'

void MostrarAyuda();
void cuenta_caracteres();
void cuenta_lineas();
void cuenta_palabras();

main(int argc, char *argv[])
{
         FILE *f;
         
         if((f=fopen("fichero.txt","r"))==NULL)
         {
         printf("No se puede abrir el fichero");
         system("pause");
         exit (0);
         }
         
         if(strcmp(argv[1],"c")==0)
         cuenta_caracteres();
         
         if(strcmp(argv[1],"l")==0)
         cuenta_lineas();
         
         if(strcmp(argv[1],"p")==0)
         cuenta_palabras;
         
         if(argc<2)
         MostrarAyuda();
         
         system("pause");
}

void MostrarAyuda()
{
     printf("\n-c: Cuenta el numero de caracteres del fichero\n");
     printf("\n-l: Cuenta el numero de lineas del fichero\n");
     printf("\n-p: Cuenta el numero de palabras del fichero\n");
}

void cuenta_caracteres()
{
     FILE *f;
     char car;
     int i=0;
     
     while(car!=EOF)
     {
     car=fgetc(f);
     i++;
     }
     
     printf("\n\nLos caracteres totales son %d\n",i-1);
}

void cuenta_palabras()
{
     FILE *f;
     char car;
     int palabra=0;
     
     while(car!=EOF)
     {
     if(car==ESPACIO || car==TAB || car==INTRO)
     palabra++;
     }
     
     printf("\n\nEl archivo contiene %d palabras\n",palabra+1);
}

void cuenta_lineas()
{
     FILE *f;
     char car;
     int linea=0;
     
     while(car!=EOF)
     {
     printf("%c",car);
     car=fgetc(f);
     if(car=='\n')
     linea++;
     }
     
     printf("\n\nEl archivo contiene %d lineas\n",linea);
}