Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Jables en 5 Octubre 2012, 06:04 am



Título: Ayuda con creacion de txt
Publicado por: Jables en 5 Octubre 2012, 06:04 am
Bueno, en vista de que no consigo hacerlo funcionar vengo por vuestra ayuda.

creo que el codigo se explica por si mismo:

Código:
Private Sub Command1_Click()
Dim n As Integer

n = n + 1
For n = 0 To 0

Close #2
Open App.Path & "\Presupuesto N° " & n & ".txt" For Output As #2

    Print #2, "***********************************************************************************************************"
    Print #2, "                                      Barras Móviles del Faraón                                            "
    Print #2, "***********************************************************************************************************"
    Print #2, "Presupuesto N°: " & n
    Print #2, " "
    Print #2, "Gracias por confiar en el Faraón. En este presupuesto encontrará la información que usted ha solicitado, "
    Print #2, "así como tambien los detalles de nuestros servicios. Ante cualquier consulta que pueda surgir, no dude en "
    Print #2, "contactarse con nosotros mediante los datos que figuran al final de este documento."
    Print #2, "***********************************************************************************************************"
    Print #2, DATOS; DEL; SOLICITANTE:
    Print #2, "Nombre: " & Text2.Text
    Print #2, "Email: " & Text3.Text
    Print #2, "Fecha del Evento: "; Text4.Text
    Print #2, "Servicio seleccionado: "
    Close #2


res = ShellExecute(Form1.hwnd, "Open", App.Path + "\presupuesto N° " & n & ".txt", "", "", 3)

El problema es que nunca genera el archivo "Presupuesto N°2.txt" no pasa jamás del 1 (en form_load está el N=1 que hace que el primer txt sea el nro 1)

alguien puede ver mi error?


gracias!


Título: Re: Ayuda con creacion de txt
Publicado por: HdM en 5 Octubre 2012, 12:15 pm
Hola.

Pues si que hay cosas raras si:

Código
  1. Private Sub Command1_Click()
  2. Dim n As Integer
  3.  
  4. n = n + 1
  5. For n = 0 To 0
  6.  

Lo 1º es que estás definiendo la variable a nivel local de este proc., de modo que su ámbito sólo se extiende al proc. Lo digo por lo de:

Citar
(en form_load está el N=1 que hace que el primer txt sea el nro 1)

Lo 2º es que a n le das valor 1 y luego montas un for (que no le veo ningún sentido) donde vuelves a igualar n a 0. Eso jamás te va a crear ningún fichero cuyo Nº sea <> 0.

Saludos.



Título: Re: Ayuda con creacion de txt
Publicado por: Elemental Code en 5 Octubre 2012, 18:53 pm
me sorprende que no te de error de bucle FOR sin NEXT.
Código:
For n = 0 To 0

Esto en lenguaje de gente se traduce en.
Código:
Repetir el siguiente código hasta que cero sea igual a cero.

Ademas todo for necesita su next.
Ese codigo esta bastante incompleto y mal :S


Ademas, vos decis que pones la variable n en uno en esta linea:
Código:
n = n + 1

pero al hacer esto:
Código:
For n = 0 To 0
La variable pasa a valer cero :S




Título: Re: Ayuda con creacion de txt
Publicado por: HdM en 6 Octubre 2012, 16:37 pm
Hola.

Está claro que el next del for lo ha omitido, pero estar, es obvio que está en el source, igual que todo Sub necesita su End Sub y lo ha omitido también. Pero es evidente, que también estará.

Con respecto a los problemas de la generación de los ficheros, pues ya está todo dicho.

Saludos.