Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB:NET] Lavorare su stringa di testo

    Ragazzi ho bisogno "estrarre" da una stringa di testo le prime 4 lettere, poi la quinta e la sesta ed infine le ultime 4.

    in pratica la stringa è questa:

    1999212302343565373573543834/876598

    io in pratica devo "estrarre" :

    1999 21 6598

    In realtà ci riesco solo che se mando in loop ( lo devo fare caricando un file di testo), dopo qualche ciclo mi da errore (inspiegabile).

    Vorrei sapere che codice utilizzereste voi ....
    Despite of my rage i'm still just a rat in a cage

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Ho spostato la discussione all'interno del forum dedicato a Visual Basic (VBx, VBA, ...) e ai linguaggi per .NET Framework (VB.NET, C#, ...).

    In futuro, poni in questo forum le domande relative a questi linguaggi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    118
    mid(stringa,1,4) & mid(stringa,5,2) &
    mid(stringa,len(stringa) -4) 'se non sai quanto è lunga altrimenti come sopra......

    ma ci sono diversi modi per fare la stessa cosa.
    p.s.
    di che loop parli ?
    D.T.K.L.A.M.F.

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    con il vb.net è meglio usare

    variabilestringa.substring che in pratica sarebbe l'equivalente del mid usato in vb6 ma ancora compatibile con vb.net.

  5. #5
    Se per un po' va e poi da errore i motivi + logici possono essere:
    - Continui a leggere dopo la fine del file
    - Un record potrebbe essere + corto degli altri e con la Mid gli dici di prendere + caratteri di quanti ne contiene (questo solo se non utilizzi la modalità random)

    PS: devi postare il codice...

  6. #6
    ecco il codice...ma ancora non funziona.
    Premetto che le stringhe hanno tutte la stessa lunghezza ...
    Visualizzo la prima riga ma poi si blocca e mi da il messaggio di errore come da codice: "Errore durante l'apertura del file"

    Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
    TextBox1.Text = ""
    TextBox2.Text = ""
    OpenFileDialog1.ShowDialog()
    TextBox2.Text = OpenFileDialog1.FileName
    Dim riga As String
    Try
    FileOpen(1, TextBox2.Text, OpenMode.Input)

    Do Until EOF(1)

    riga = Mid(LineInput(1), 1, 4) & " " & Mid(LineInput(1), 5, 2) & " " & Mid(LineInput(1), 7, 2) & " " & Mid(LineInput(1), 9, 2) & " " & Mid(LineInput(1), 11, 2) & " " & Mid(LineInput(1), 13, 2) & " " & Mid(LineInput(1), 15, 2)

    TextBox1.Text = TextBox1.Text & riga & vbCrLf
    Loop
    Catch
    MsgBox("Errore durante l'apertura del file")
    Finally
    FileClose(1)
    End Try
    End Sub
    End Class
    Despite of my rage i'm still just a rat in a cage

  7. #7
    Ok...
    ogni LineInput leggi una riga, quindi stai leggendo 7 righe alla volta (7 mid). A causa del "try" non ti viene segnalato l'errore (che sicuramente sarà "input oltre la fine del file" o qualcosa simile), ma passa direttamente al catch
    Devi prima scaricare la riga in una variabile che poi vai ad utilizzare nelle Mid.

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.