Newsgroup: it.comp.lang.visual-basic
Titolo: Funzione che inserisce una stringa ogni tot parole

Salve
Ho bisogno di una funzione che mi riporti in un file di testo il
contenuto di una textbox inserendo, ogni tot parole (PAROLE, non
lettere) il contenuito di una stringa.
Io ho provatop a farlo, ma non saprei nemmeno da dove iniziare.......
:((
Spero che qualcuno possa essermi di aiuto, anche perchè ho bisogno di
questa funzione al più presto possibile.
Grazie 1000 a chiunque mi aiuterà
ByeZ!
Alkondor
Togliere NOSPAM per rispondere in e-mail

Questa funzione inserisce tre asterischi ogni parola:
    Dim sSource As String
    Dim sDest As String
    Dim sInser As String
    Dim i As Long
    Dim sChar As String * 1
    sSource = "Domenico Statuto prova stringa"
    sInser = "***"
    For i = 1 To Len(sSource)
        sChar = Mid(sSource, i, 1)
        sDest = sDest & sChar
        If sChar = " " Then
            sDest = sDest & sInser
        End If
    Next i
    MsgBox sDest
Ovviamente, se non vuoi i tre asterischi ogni parola ma ad esempio ogni due
o più parole, inserisci nel ciclo un contatore e ogni multiplo fai
l'assegnazione.
Il codice è stato fatto in dieci secondi, quindi usa variabili che
potrebbero diventare costanti e altre inefficienze, di cui mi scuso.
Saluti,
Domenico
Alkondor <alko...@freemail.itNOSPAM> wrote in message
37d391e8...@news.tin.it...


 potrebbero diventare costanti e altre inefficienze, di cui mi scuso.
A parte le ottimizzazioni, un piccolo contributo: in un file di testo c'è la
possibilità di trovare parole separate non da spazi ma da virgole, punti
o simili, anche se la cosa non sarebbe ortograficamente corretta.
Es.: "primo,secondo e terzo", oppure "fine di frase.Inizio di un'altra".
In questi casi il conteggio delle parole fallirebbe, quindi converrebbe
aggiungere
    Dim sDelimitatori As String
    sDelimitatori = " .," ' inserire altri caratteri da considerare delimitatori di parola.
e cambiare la riga
-----------> If sChar = " " Then
con
-----------> If InStr(sDelimitatori, sChar) > 0 Then
In questo caso bisogna però considerare altre eventualità: i puntini di
sospensione vengono conteggiati come tre parole, e magari ci sono altri
problemi che al momento non vedo.
La cosa si complica...
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------
Real E-address: 
gaet...@hotmail.com

Paperino <non...@lo.dico> wrote in message 7r0ifs$e9s$1...@stargate1.inet.it...

Grande idea Paperino.
Forse però per risolvere il problema dei puntini di sospenzione basta
cambiare
If InStr(sDelimitatori, sChar) > 0 Then
così (posto che sChar è uguale a Mid(sSource, i, 1)):
If InStr(sDelimitatori, sChar) > 0  and not InStr(sDelimitatori,
Mid(sSource, i+1, 1)) Then
in effetti in questo modo se si trovano dei delimitatori, la funzione
dovrebbe "scrollare" fino all'ultimo delimitatore non seguito da un'altro
delimitatore. Certo, così la parola contiene anche i puntini di sospenzione,
ma a questo punto dipende se si vuole inserire la stringa prima o dopo 'sti
puntini. se è prima non vedo altro modo che creare un variabilozzo tipo
integer che memorizzi la posizione del primo puntino di sospensione
VByez
Cornova