Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348

    Concatenazione stringhe

    Ciao,

    ecco un'altra domanda da principiante...

    Ho un piccolo programma in VB 2005 e devo concatenare una stringa ricavata da un file esterno a del testo aggiuntivo

    Pensavo fosse semplice ovvero
    urlDefault = urlDefault & "?Par=" & par

    Di seguito il codice con cui ricavo urlDefault:

    On Error Resume Next
    sRetVal = GetPrivateProfileString("parametri", "DefaultPage", "0", RtnStr, Len(RtnStr), CompletePath)

    strHostName = System.Net.Dns.GetHostName()
    strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressLi st(0).ToString()
    'MessageBox.Show("Host Name: " & strHostName & "; IP Address: " & strIPAddress)
    urlDefault = RtnStr & "&LocalIP=" & strIPAddress & "&LocalHostName=" & strHostName

    Ciò però non funziona e visualizzando la variabile urlDefault vedo solo il valore originario.
    Qualcuno mi sa aiutare?

    grazie
    Edo

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

    Moderazione

    Originariamente inviato da edo72
    Ho un piccolo programma in VB 2005 [...]
    Il linguaggio va indicato anche nel titolo, come da Regolamento (qui l'ho aggiunto io).

    Inoltre, riporta il tuo codice completo, poiché l'esempio potrebbe non avere lo stesso errore che è presente nel codice integrale che hai scritto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Visto così non sembra vi siano errori particolari.

    prova ad usare l'operatore somma "+" o il metdodo String.Concat(arg1, arg2...)

    Prova inoltre a vedere passo-passo tutte le linee di codice interessate per capire se le variabili usate nella concatenzione sono correttamente inizializzate.

    Facci sapere.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Purtroppo non funziona ne con String.Concat ne con il segno +.

    Le variabili sono dimensionate così::

    Dim strHostName As String
    Dim strIPAddress As String
    Dim RtnStr As String = Space(255)
    Dim urlDefault As String

    strHostName = System.Net.Dns.GetHostName()
    strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressLi st(0).ToString() urlDefault = RtnStr + "?LocalIPAddress=" + strIPAddress + "&LocalHostName=" + strHostName

    urlDefault è sempre solo RntStr

    La cosa strana e che se dimensiono RtnStr senza space urldefault è il resto della stringa senza RtnStr.

    Boh... io sono un principiante ma la cosa mi sembra strana.

    Grazie
    Edo

  5. #5
    Per favore, quando posti del codice usa il tasto per la corretta formattazione di questo tipo di testo [Tasto #].

    Io ho usato il tuo codice:
    codice:
            Dim strHostName As String
            Dim strIPAddress As String
            Dim RtnStr As String = Space(255)
            Dim urlDefault As String
    
            strHostName = System.Net.Dns.GetHostName()
            strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressList(0).ToString()
            urlDefault = RtnStr + "?LocalIPAddress=" + strIPAddress + "&LocalHostName=" + strHostName
    e a me funziona perfettamente:

    Ho visualizzato il valore di urlDefault in una TextBox e mi sono comparsi :

    "------255 spazi------?LocalIPAddress=**.**.***.***&LocalHostName=****** *********"

    tutto normale.

    Qual è il problema?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Ti posto il codice:

    Private Declare Auto Function GetPrivateProfileString Lib "kernel32.dll" _
    (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
    ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer


    Sub ReadINI()

    SourceFolder = My.Application.Info.DirectoryPath
    CompletePath = SourceFolder & "\" & "config.ini"

    sRetVal = GetPrivateProfileString("parametri", "DefaultPage", "", RtnStr, Len(RtnStr), CompletePath)
    strHostName = System.Net.Dns.GetHostName()
    strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressLi st(0).ToString()
    urlDefault = Trim(Left(RtnStr, sRetVal) + "?LocalIPAddress=" + strIPAddress + "&LocalHostName=" + strHostName)
    MsgBox(urlDefault )

    End sub


    E' corretto???

    Grazie

  7. #7
    Se il risultato che vai cercando è un messaggio come questo:

    "?LocalIPAddress=**.**.***.***&LocalHostName=***** **********"

    Allora il codice è corretto!

    Per farlo funzionare ho dovuto cambiare una linea:

    codice:
    Private Declare Auto Function GetPrivateProfileString Lib "kernel32.dll"_
    (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String,_
    ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    
        Sub ReadINI()
    
            SourceFolder = My.Application.Info.DirectoryPath
            CompletePath = SourceFolder & "\" & "config.ini"
    
            sRetVal = GetPrivateProfileString("parametri", "DefaultPage", "", RtnStr, Len(RtnStr), CompletePath)
            strHostName = System.Net.Dns.GetHostName()
            strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressList(0).ToString()
            urlDefault = Trim(Microsoft.VisualBasic.Left(RtnStr, sRetVal) + "?LocalIPAddress=" + strIPAddress + "&LocalHostName=" + strHostName)
            MsgBox(urlDefault)
    
        End Sub
    Probabilmente tu hai un Imports che io non ho inserito.

    Ma dove hai copiato questo codice?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    Ciao,

    prova e riprova ho risolto... posto di seguito il codice...

    SourceFolder = My.Application.Info.DirectoryPath
    CompletePath = SourceFolder & "\" & "config.ini"

    sRetVal = GetPrivateProfileString("parametri", "DefaultPage", "", RtnStr, Len(RtnStr), CompletePath)
    strHostName = System.Net.Dns.GetHostName()
    strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressLi st(0).ToString()
    urlDefault = Trim(RtnStr.Substring(0, sRetVal) & "?ip=" & strIPAddress & "&hn=" & strHostName)

    Il problema è che ci sono delle differenze tra VB e VB.NET... io che conosco ASP ragiono su quello (vedi la funzione stringa left che adesso è Substring...).

    Vabbè...

    Grazie mille

  9. #9
    Complimenti!

    Se avevi problemi con Left() bastava chiedere.
    Personalmente ho abbandonato VB6 per passare a VB.Net, ma nel tuo codice ho mantenuto le istruzioni che avevi usato tu...


  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    348
    grazie mille per la tua disponibilità ma io sono agli inizi e per me purtroppo queste differenze sono ancora poco chiare.

    A forza di sbattere la testa sto capendo qualcosina...

    Grazie ancora

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.