Newsgroup: it.comp.lang.visual-basic
Titolo: Testo al contrario

Salve. Vorrei sapere se è possibile scrivere un testo già esistente al
contrario con qualche funzione o macro.

 contrario con qualche funzione o macro.
Cioè vorresti che "Ciao" diventasse "oaiC"?
Dim msg As String, tmp As String, pos As Integer
Dim i As Integer, arr( ) As String
msg="Ciao"
I len(msg)<=0 Then
    msgbox ("Attenzione stringa nulla")
Elseif
    For i=0 To len(msg)
        tmp=Mid$(msg, pos,1)
        arr= tmp
        pos=pos+1
      Next
Endif
adesso hai un array di n elementi dove n è il numero di caratteri della
stringa. Adesso basta ordinare l'array in modo da far si che il primo
carattere sia l'ultimo, il secondo il penultimo....ora non mi viene il
codice completo ma potrebbe qlc simile a questo.
Dim n As Integer
n= UBound(arr) - LBound(arr)
For UBound(arr) To LBound(arr) Step - 1
        <...codice per invertire l'indice degli elementi...>
        arr( i ) = arr( i ) - n
        ....
        ....
Next
Insomma, io sono un principiante, appena oggi ho studiato gli array. Però
vorrei sapere se la mia idea è giusta e magari vedere il codice corretto e
completato da qlc  più esperto di me.
Ciao.

 contrario con qualche funzione o macro.
A memoria la funzione StrReverse
p.e. Text1.Text = StrReverse(Text1.Text)
_____________________________________________
James Tiberius Kirk, matricola SC 937-076 CEC
  Nato a Riverside, nello Iowa, USA, Terra
            il 1277.1 (26/03/2233)

 p.e. Text1.Text = StrReverse(Text1.Text)
Muhahahahahaha, ed io che  mi stavo impappinando con tutto quel
codiceeeeeeeeeeee...........nooooooooooooooooooooooooo

 Endif
Non so cosa faccia questo (oltre ad andare in errore: ma chi ti ha insegnato
a incrementare i contatori dopo le altre istruzioni?) ma di sicuro niente di
pratico :)
Se proprio vuoi fartela a mano basta una cosa cosě:
For i = len(msg) to 1 step -1
    strrev = strrev & mid$(msg,i,1)
Next i
Ciao

 > p.e. Text1.Text = StrReverse(Text1.Text)
Non ti arrabbiare ma, a volte, l'uso corretto del linguaggio
evita certi quiquoqua...
quindi anziche scrivere 'Testo al contrario' avresti dovuto
scrivere '"Testo capovolto' no?
E poi a che ti serve, programmi e fai yoga contemporaneamente?
:-)))))


 codiceeeeeeeeeeee...........nooooooooooooooooooooooooo
Un punto a tuo favore, la buona volonta'!
Non perderla mai e non avrai mai nessun problema.
Credimi. :-)))


 ha scritto nel messaggio
news:w8up7.47978$7Y3.3...@news2.tin.it...


Grazie
Se hai vb6 allora e' sufficiente chiamarla.
ciao, hal

 Non sapete come fare?
Ti hanno già detto che con la funzione strReverse risolvi il
problema.....:-)
Cmq il pezzo di codice che ho tirato fuori io è:
dopo aver creato un array strArray contenente stringhe
n=UBound(strArray)
For LBound(strArray) To UBound(strArray)
    strArray( i ) = strArray( n )
    i = i + 1
    n = n + 1
Next
poi questa notte ho anche scritto il seg. codice, per ricostruire il tutto
al contrario:
Dim stringa As String, tmp As String, i As Long
For LBound( strArray) To UBound(strArray)
    tmp=strArray( i )
    stringa=stringa & tmp
Next
Text1.Text = stringa
*F O R S E* funziona.......se ho sbagliato chiedo scusa, e vorrei sapere
dove e perchè. Grazie, ciao.

Ho provato ma non funziona. Io copio tutto e lo incollo sul vb di excel,
elimino il testo scritto da te ma poi nulla. Comunque grazie lo stesso ma
per ultima cosa vorrei sapere cosa sono gli Array e se devo copiare anche
questo sul vb (cosa che faccio). Eventualmete cosa devo scrivere per usare
la funzione strReverse?
Ciao
"songohan" <fan...@TuttiILamer.it> ha scritto nel messaggio
news:ASOp7.2691$bf.1...@news.infostrada.it...


la funzione strReverse?
Ok, allora facciamola semplice:
Public Function RevStr(ByVal a_Src As String) As String
    Dim ch As Long, buffer As String, lenstr As Long
 
    lenstr = Len(a_Src)
    If lenstr < 2 Then
        RevStr = a_Src
        Exit Function
    End If
    buffer = Space(lenstr)
    For ch = 1 To lenstr
        Mid(buffer, lenstr - ch + 1, 1) = Mid$(a_Src, ch, 1)
    Next ch
    RevStr = buffer
 
End Function    '// RevStr
hth, hal

nell'immagine che ti allegato e non oaic !!
Ah, adesso (meglio tardi che mai) ho capito :-)
Vedo 2 strade: una facile e una difficile.
Quella difficile prevede di crearsi un font apposta, con i quale scrivere
il testo rovesciato con la ReverseString (o come diavolo si chiama).
Quella facile consiste nello scrivere normalmente in una picturebox nascosta,
quindi copiarne l' immagine a rovescio.
Ecco la ricetta di esempio.
Ingredienti: 1 form, 1 picturebox
Nel form scrivere questo codice:
Option Explicit
Private Sub Form_Load()
    Me.AutoRedraw = True
    With Picture1
        '.Visible = False
        .AutoRedraw = True
        .CurrentY = 20
        .CurrentX = 20
        .Font.Size = 20
        Picture1.Print "ciao"
        Me.PaintPicture .Image, .Width, .Height, -.ScaleWidth, -.ScaleHeight, _
                                0, 0, .ScaleWidth, .ScaleHeight, _
                                vbSrcCopy
    End With
End Sub
Premere F5 e godersi il risultato ;-)
hth, hal