Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [VB6] Lettura da file di testo e variabili

    Salve a tutti,
    Volevo fare una variabile globale che sia il frutto della lettura di un file di testo.

    codice:
    Option Explicit
    Public tempdirectory As String
    tempdirectory = My.Computer.FileSystem.ReadAllText("C:\temp.txt")
    Con questo codice assegno alla variabile tempdirectory quello che c'è scritto nel file temp.txt giusto?

    L'ho messa in un modulo a parte ma mi da errore di compilazione dicendomi che non è valido all'esterno di una routine.
    Detto questo, per richiamare la variabile per aggiungerla a un percorso posso fare questo?

    codice:
    (tempdirectory & "\845204311337\sprites.bmp")

  2. #2

    Re: [VB6] Lettura da file di testo e variabili

    Originariamente inviato da Unholy Spirit
    Salve a tutti,
    Volevo fare una variabile globale che sia il frutto della lettura di un file di testo.

    codice:
    Option Explicit
    Public tempdirectory As String
    tempdirectory = My.Computer.FileSystem.ReadAllText("C:\temp.txt")
    Con questo codice assegno alla variabile tempdirectory quello che c'è scritto nel file temp.txt giusto?

    L'ho messa in un modulo a parte ma mi da errore di compilazione dicendomi che non è valido all'esterno di una routine.
    È normale, non puoi mettere del codice sparso per i moduli. Mettilo in una routine di inizializzazione che venga eseguita all'inizio del programma. Tra parentesi, evita di inserire percorsi fissi nel codice ("c:\temp.txt") e di memorizzare impostazioni in file non standard (il tuo file di testo), affidati piuttosto al sistema di file di configurazione XML che ti fornisce il .NET Framework.
    Inoltre, dopo aver ottenuto il percorso dal file in questione controlla la sua esistenza con System.IO.Directory.Exists.
    Detto questo, per richiamare la variabile per aggiungerla a un percorso posso fare questo?

    codice:
    (tempdirectory & "\845204311337\sprites.bmp")
    Meglio così:
    codice:
    System.IO.Path.Combine(tempdirectory, "845204311337\sprites.bmp")
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3

    Re: Re: [VB6] Lettura da file di testo e variabili

    Originariamente inviato da MItaly
    È normale, non puoi mettere del codice sparso per i moduli. Mettilo in una routine di inizializzazione che venga eseguita all'inizio del programma. Tra parentesi, evita di inserire percorsi fissi nel codice ("c:\temp.txt") e di memorizzare impostazioni in file non standard (il tuo file di testo), affidati piuttosto al sistema di file di configurazione XML che ti fornisce il .NET Framework.
    Inoltre, dopo aver ottenuto il percorso dal file in questione controlla la sua esistenza con System.IO.Directory.Exists.

    Meglio così:
    codice:
    System.IO.Path.Combine(tempdirectory, "845204311337\sprites.bmp")
    .
    Non posso usare il .NET sennò sarei già pronto XD.
    Non ti preoccupare per l'esistenza o meno del file... Ho già macchinato i miei metodi.
    Devo per forza usare il System.IO.Path.Combine? Verrebbe fuori un cataclisma nel codice già abbastanza disordinato (non per colpa mia)

  4. #4

    Re: Re: Re: [VB6] Lettura da file di testo e variabili

    Originariamente inviato da Unholy Spirit
    Non posso usare il .NET sennò sarei già pronto XD.
    Non ti preoccupare per l'esistenza o meno del file... Ho già macchinato i miei metodi.
    Devo per forza usare il System.IO.Path.Combine? Verrebbe fuori un cataclisma nel codice già abbastanza disordinato (non per colpa mia)
    ...e invece come pensi di usare:
    My.Computer.FileSystem.ReadAllText("C:\temp.txt")
    ...in VB6, forse ????




    ...e comunque, come ti ha detto MItaly, non puoi usare "codice sparso" per i moduli, devi mettere la lettura del file e l'assegnazione alla variabile DENTRO una routine (Form_Load, ad esempio....), oppure dove hai "macchinato i tuoi metodi"
    IceCube_HT (VB6 fan Club)

  5. #5

    Re: Re: Re: Re: [VB6] Lettura da file di testo e variabili

    Originariamente inviato da icecube_HT
    ...e invece come pensi di usare:
    My.Computer.FileSystem.ReadAllText("C:\temp.txt")
    ...in VB6, forse ????




    ...e comunque, come ti ha detto MItaly, non puoi usare "codice sparso" per i moduli, devi mettere la lettura del file e l'assegnazione alla variabile DENTRO una routine (Form_Load, ad esempio....), oppure dove hai "macchinato i tuoi metodi"
    Il problema è che i miei metodi li ho macchinati in ben altri linguaggi.
    Io non conosco il VB6 ma ci devo lavorare per forza e se fosse una cosa veloce convertirlo al .net per poi portarlo dove voglio io l'avrei già fatto.
    Come posso allora far leggere un file di testo al VB6 contenente una directory per poi usarla come variabile che andrà ad aggiungersi a delle directory non complete?

  6. #6
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Quello che hai scritto è codice .NET

    Per aprire un file in VB6 devi fare così:

    codice:
    public percorso as string
    
    public sub leggipath
      dim nfile as integer
      
      nfile=freefile
      open "c:\temp.txt" for input as #nfile
      line input #nfile, percorso
      close #nfile
    end sub
    metti tutto in un modulo
    La routine "leggipath" la richiami dove hai bisogno.
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  7. #7
    Originariamente inviato da kalosjo
    Quello che hai scritto è codice .NET

    Per aprire un file in VB6 devi fare così:

    codice:
    public percorso as string
    
    public sub leggipath
      dim nfile as integer
      
      nfile=freefile
      open "c:\temp.txt" for input as #nfile
      line input #nfile, percorso
      close #nfile
    end sub
    metti tutto in un modulo
    La routine "leggipath" la richiami dove hai bisogno.
    in pratica la path è percorso quindi basta mettere percorso & "il\resto\del\percorso.bmp" ?
    Posso mettere questo in un modulo qualunque?

    Posso fare così?
    Picsprites.Picture = LoadPicture(tempdirectory & "\845204311337\sprites.bmp")

  8. #8
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Si, ti conviene mettere in una variabile prima di utilizzare la funzione LoadPicture

    pathimg=tempdirectory & "\845204311337\sprites.bmp"
    Picsprites.Picture = LoadPicture(pathimg)
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  9. #9
    Originariamente inviato da kalosjo
    Si, ti conviene mettere in una variabile prima di utilizzare la funzione LoadPicture

    pathimg=tempdirectory & "\845204311337\sprites.bmp"
    Picsprites.Picture = LoadPicture(pathimg)
    A questo punto tanto vale far diventare Function la Sub:
    codice:
    Public Function tempdirectory() As String
      Dim nfile As Integer, percorso As String
      nfile=Freefile
      Open "c:\temp.txt" For Input As #nfile
        Line Input #nfile, percorso
      Close #nfile
      tempdirectory = percorso
    End Function
    cosi' eviti ulteriori variabili Public e/o assegnazioni....




    ...rimane incomprensibile il fatto di scrivere su un file il path di una directory TEMPORANEA, potrei capire se fosse una directory dati, ma temporanea proprio... :master:
    IceCube_HT (VB6 fan Club)

  10. #10
    Originariamente inviato da icecube_HT
    A questo punto tanto vale far diventare Function la Sub:
    codice:
    Public Function tempdirectory() As String
      Dim nfile As Integer, percorso As String
      nfile=Freefile
      Open "c:\temp.txt" For Input As #nfile
        Line Input #nfile, percorso
      Close #nfile
      tempdirectory = percorso
    End Function
    cosi' eviti ulteriori variabili Public e/o assegnazioni....




    ...rimane incomprensibile il fatto di scrivere su un file il path di una directory TEMPORANEA, potrei capire se fosse una directory dati, ma temporanea proprio... :master:
    C'è un perchè :0.


    Si, ti conviene mettere in una variabile prima di utilizzare la funzione LoadPicture pathimg=tempdirectory & "\845204311337\sprites.bmp" Picsprites.Picture = LoadPicture(pathimg)
    Ma in ogni caso posso usare &?
    Perchè non c'è solo sprites.bmp ma un'infinità d'immagini ;_;.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.