MasterDrive.it   
Vai indietro   MasterDrive.it > Software Development > Visual Basic 6



Rispondi
 
Strumenti della discussione Modalità di visualizzazione
Vecchio 16-10-2009, 15:12   #1 (permalink)
Neofita della community

 
52 Messaggi

Newton novizio della comunita' ( + 10 )
Aggiunta ad una stringa di uno spazio

ciao a tutti.

ho in un'applicazione da concatenare due parole (in realtà sono 2 valori di 2 parametri)
è fondamentale però che tra i due vi sia uno spazio xcui ho scritto in questo modo

valori(I) = valori(I) & " "

quando però poi vedo il risultato a video i due valori son uniti ma quello spazio non è presente. Forse il problema è da come ho io aggiunto lo spazio?

& " " non è così che si aggiunge lo spazio?

Newton non è in linea   Bookmark and Share Rispondi quotando
Vecchio 16-10-2009, 15:20   #2 (permalink)
Very Important Person

 L'avatar di sspintux

 
854 Messaggi

sspintux e' una persona affidabile ( + 250 )sspintux e' una persona affidabile ( + 250 )sspintux e' una persona affidabile ( + 250 )
Quote:
Originariamente inviata da Newton Visualizza il messaggio
-------
valori(I) = valori(I) & " "

quando però poi vedo il risultato a video i due valori son uniti ma quello spazio non è presente. Forse il problema è da come ho io aggiunto lo spazio?

& " " non è così che si aggiunge lo spazio?
Il problema non è nell'aggiunta dello spazio.

Valori come è dichiarato ?
come mostri i valori a video ?
__________________
Ciao sspintux
------------------------------------------------------------
Volevamo cambiare il mondo...peccato che abbiamo perso lo scontrino
sspintux non è in linea   Bookmark and Share Rispondi quotando
Vecchio 16-10-2009, 15:45   #3 (permalink)
Utente della community


 
494 Messaggi

Fix978 e' una persona affidabile ( + 250 )Fix978 e' una persona affidabile ( + 250 )Fix978 e' una persona affidabile ( + 250 )
A parte i chiarimenti chiesti da sistemista c'è qualcosa che non mi torna nel codice che hai scritto...

assegni il valore della variabile alla stessa variabile ma senza aggiungere il valore della seconda variabile, dov'è il concatenamento dei 2 valori ?


Forse hai una matrice di "valori" e pensi di aggiungere uno spazio ad ogni elemento cosi da visualizzarlo quando con un ciclo verifichi il contenuto di ogni singolo elemento ?

Se la risposta è si il problema è il "tipo" della variabile che non è di tipo String ma numerico e per concatenare uno "spazio" che è un valore String, devi usare un tipo di variabile String.

Ultima modifica di Fix978 : 16-10-2009 a 15:50. Motivo: aggiunta
Fix978 non è in linea   Bookmark and Share Rispondi quotando
Vecchio 16-10-2009, 16:44   #4 (permalink)
Collega della community

 L'avatar di Louis

 
995 Messaggi

Louis con qualche commento positivo ( + 50 )Louis con qualche commento positivo ( + 50 )
Ciao Newton,
per aggiungere uno o più spazi in una stringa puoi usare la funzione Space()che restituisce un valore Variant (String) costituito dal numero specificato di spazi, ad esempio per uno spazio:
codice:
valori(I) = valori(I) & Space(1)
__________________
Louis
Louis non è in linea   Bookmark and Share Rispondi quotando
Vecchio 19-10-2009, 11:44   #5 (permalink)
Very Important Person

 L'avatar di @Alex

 
5,509 Messaggi

@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )@Alex deve ritenersi una persona fiera ( + 1000 )
Quote:
Originariamente inviata da Newton Visualizza il messaggio
ciao a tutti.

ho in un'applicazione da concatenare due parole (in realtà sono 2 valori di 2 parametri)
è fondamentale però che tra i due vi sia uno spazio xcui ho scritto in questo modo

valori(I) = valori(I) & " "

quando però poi vedo il risultato a video i due valori son uniti ma quello spazio non è presente. Forse il problema è da come ho io aggiunto lo spazio?

& " " non è così che si aggiunge lo spazio?
La tua domanda non solo non è chiara... ma pone un dubbi sul cosa ti aspetti di vedere...!

Ipotizziamo questo scenario:
codice:
valori(I) = valori(I) & " "
Ipotiziamo che inizialmente in Valori(I) sia contenuto "AABB" con la sintassi di cui prima... cosa ti attendi di vedere...??
Se ti aspetti "AA BB" è estremamente impossibile... lo spazio è stato aggiunto alla fine... e pertanto otterrai "AABB " la dove lo spazio finale difficilmente risulterà visibile se non andando a posizionare il cursore...!

Di fatto se il contenuto di Valore(I) è, come hai detto prima, ottenuto aggregando 2 valori, lo spazio lo dovrai introdurre nella fase di assegnazione e non dopo... altrimenti non otterrai mai il risultato voluto.
__________________
@Alex
Sito Web personale:
http://www.alessandrobaraldi.it/

Se l'aiuto ti è stato utile aumenta la reputazione
all'utente con il Pulsante
@Alex non è in linea   Bookmark and Share Rispondi quotando
Vecchio 19-10-2009, 19:15   #6 (permalink)
Collega della community

 L'avatar di Louis

 
995 Messaggi

Louis con qualche commento positivo ( + 50 )Louis con qualche commento positivo ( + 50 )
Come sempre @Alex é molto preciso.
Per quanto mi riguarda nell'indicare "valori(I) = valori(I) & Space(1)" intendevo solo l'inserimento di un spazio tra due stringhe.
Ora se Newton volesse concatenare una stringa di valori contenuti in una matrice, escludendo lo spazio iniziale della nuova stringa concatenata, potrebbe anche fare in questo modo:

codice:
Option Explicit
Private Sub Form_Load()
    Dim sValori() As String
    Dim sValString As String
    Dim j As Integer
       
    'Ridimensiona la matrice e mantiene gli elementi:
        ReDim Preserve sValori(3)
    
    ' Carica il vettore:
        sValori(0) = "000000001"
        sValori(1) = "000000101"
        sValori(2) = "000001001"
        sValori(3) = "000010001"
    
    ' Concatena i valori staccandoli con 2 spazi
    ' a partire dal valore minore, senza spazio iniziale:
    For j = UBound(sValori) To LBound(sValori) Step -1
        If j = UBound(sValori) Then sValString = sValori(j)
        If j < UBound(sValori) Then sValString = sValori(j) & Space(2) & sValString
    Next j
    
    MsgBox sValString
    Text1.Text = sValString
End Sub
Speriamo di non aver commesso errori nella scrittura del codice, nel qual caso tenete conto che sono ancora un apprendistra ....
__________________
Louis
Louis non è in linea   Bookmark and Share Rispondi quotando
Vecchio 19-10-2009, 19:58   #7 (permalink)
Utente della community


 
494 Messaggi

Fix978 e' una persona affidabile ( + 250 )Fix978 e' una persona affidabile ( + 250 )Fix978 e' una persona affidabile ( + 250 )
Si stanno facendo solo supposizioni inutilmente visto che Newton non da le risposte alle domande già fatte.

@Louis
Per escludere gli spazi iniziali o finali (o entrambi), puoi semplicemente utilizzare LTRIM, RTRIM e TRIM

Ciao
Fix978 non è in linea   Bookmark and Share Rispondi quotando
Vecchio 19-10-2009, 20:12   #8 (permalink)
Collega della community

 L'avatar di Louis

 
995 Messaggi

Louis con qualche commento positivo ( + 50 )Louis con qualche commento positivo ( + 50 )
@Fix978, sì sono al corrente ...
il problema era solo lo spazio iniziale e non mi andava di usare altre funzioni (anche Replace).
__________________
Louis
Louis non è in linea   Bookmark and Share Rispondi quotando
Vecchio 20-10-2009, 10:45   #9 (permalink)
Neofita della community

 
52 Messaggi

Newton novizio della comunita' ( + 10 )
risoluzione del problema

Buongiorno a tutti e vi ringrazio per le risposte datemi. Ahime non avevo avuto modo di controllare la discussione.

Ad ogni modo, io avevo un'applicazione (non creata da me) che tra le altre cose doveva fare sostanzialmente questo

es. stringa a = pippo
stringa b = pluto

il risultato doveva essere 'pippo pluto' il tutto viene scritto in un file

quindi andeva semplicemente presa la stringa pippo ed aggiunto lo spazio

pippo = pippo & " "

nonostante fosse scritto in modo corretto non funzionava. In realtà poi ho scoperto che il bug era altrove ed ho risolto proprio ieri.

Ps. confermo che era un array di Stringhe

grazie a tutti e scusate la lentezza nel rispondere
Newton non è in linea   Bookmark and Share Rispondi quotando
Vecchio 20-10-2009, 15:10   #10 (permalink)
Very Important Person

 L'avatar di yronium

 
1,305 Messaggi

yronium e' un tipo da prendere in considerazione ( + 650 )yronium e' un tipo da prendere in considerazione ( + 650 )yronium e' un tipo da prendere in considerazione ( + 650 )yronium e' un tipo da prendere in considerazione ( + 650 )yronium e' un tipo da prendere in considerazione ( + 650 )yronium e' un tipo da prendere in considerazione ( + 650 )yronium e' un tipo da prendere in considerazione ( + 650 )
In ogni modo, giusto per completare il thread, esiste la funzione Join (v.) che tra l'altro fa il contrario di ciò che fa la Split. Maggiori dettagli nella Guida, sul Balena o sui Trucchi.

Spero sia utile. Ciao.
__________________
Io NON sono su Facebook.

Il Vero Programmatore può contare fino a 1024 sulle dita delle mani.

"Come porre le domande in modo intelligente" di ESR (versione italiana)

Hai visto il mio avatar?
yronium non è in linea   Bookmark and Share Rispondi quotando
Rispondi

Strumenti della discussione
Modalità di visualizzazione

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è attivo
Le smilies sono attive
Il codice IMG è attivo
il codice HTML è disattivato
Trackbacks are attivo
Pingbacks are attivo
Refbacks are disattivato

Salto del forum


Tutti gli orari sono GMT +1. Attualmente sono le 23:08.


Powered by vBulletin versione 3.8.0
Copyright © 2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0

Valid XHTML 1.0 Transitional  Creative Commons License

Eccetto dove diversamente specificato, i contenuti pubblicati in questa comunità sono rilasciati sotto Licenza
Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia License.
La comunita' di MasterDrive.it non e' responsabile di eventuali imprecisioni presenti nelle pagine.