Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Split di una Stringa, inserimento e ricerca in un array
Forum - C# / VB.NET - [C#] Split di una Stringa, inserimento e ricerca in un array

Avatar
kerry (Normal User)
Newbie


Messaggi: 7
Iscritto: 10/10/2012

Segnala al moderatore
Postato alle 12:16
Giovedì, 15/11/2012
Salve a tutti, allora prima di tutto spiego brevemente cosa sto cercando di fare.
Ho una Stringa che viene presa dal testo di una richTextBox, In questa stringa devo ricercare tutte quelle parole che compaiono dopo Info: e che siano all inizio di una nuova riga e che finiscano con ":"   A Queste dovrò assegnare una Tag Html di grassetto.
Per capirci meglio, nel esempio sottostante per esempio dovrò individuare le parole "per:" e "Prova:" e farle diventare <b>per:</b> e <b>Prova:</b>

Info:
per:
Prova:

per cui pensavo di procedere in questo modo :
Suddividere la Stringa in parole, ogni parola va a riempire il vertice di un array, per poi fare un ciclo e cercare le corrispondenze.
poi se avete altre alternative ben vengano.

Codice sorgente - presumibilmente C# / VB.NET

  1. string s = "testo di prova con Info: prova: cosa: ecc "; // non ho messo a capo per comodità per ora
  2.            
  3.            
  4.              string[] words = s.Split(new string[] { " " }, StringSplitOptions.None);  // splitto la stringa per spazio
  5.                 for (int i = 1; i < words.Length ; i++)                  
  6.                    
  7.                     foreach (string parola in words)
  8.                         if ((words[i] == ("Info:")) && (words[i + 1].EndsWith(":")))
  9.                         {                      
  10.                             Console.WriteLine(words[i]);  // anche qui come posso ciclare con tutte le corrispondenze?
  11.                             i++;
  12.                             Console.Read();
  13.                         }



Allora nel codice soprastante non ho controllato se la parola seguente è a capo, anche li ho trovato qualche problemino.
E ho stampato il risultato in Console per comodita quando invece a me servirebbe restituire tutte le corrispondenze nella stringa originale circondato da le tag html <b>parola</b>

Spero di essere stato chiaro nella spiegazione e che qualcuno possa darmi una mano 8-)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5473
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:41
Giovedì, 15/11/2012


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
kerry (Normal User)
Newbie


Messaggi: 7
Iscritto: 10/10/2012

Segnala al moderatore
Postato alle 14:15
Giovedì, 15/11/2012
Questa è bella ! cosa ci fa una mia discussione iniziata su un altro forum li, avevo scritto le esatte cose....qualcuno deve averla presa e rifatta uguale forse per rispondere alla mia.....
cmq non voglio andare OT ma preferisco essere seguito qui...anche se ora che me l hai fatto notare seguirò anche il mio topic clone :-|

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5473
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:26
Giovedì, 15/11/2012
Vuoi dire che tu non sei electric?  Allora scrivilo in quel forum chiedendo chi l'ha "riscritta" ...

O sei sempre tu che hai scritto su due forum diversi ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Osiride80 (Normal User)
Newbie


Messaggi: 13
Iscritto: 20/05/2010

Segnala al moderatore
Postato alle 16:50
Giovedì, 15/11/2012
Ciao,
per ringraziarti di aver anche solo che ascoltato il mio problema, oggi in chat, che ho qui esposto..
http://www.pierotofy.it/pages/extras/forum/6/1043370-vb6_r ...
(magari qualcuno da un'occhiata in più anche al mio..;))

...ho buttato giu un codice di esempio

un banale form con dentro una richtextbox di nome rtbox e un button di nome btnformat

qui di seguito il codice per il formload e il button

Codice sorgente - presumibilmente C#

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             rtBox.Text = "Questo è un testo di prova con Info:\nTitolo: nome titolo\nBrano: nome brano\nArtista: nome artista";
  4.  
  5.        }
  6.  
  7.         private void btnFormat_Click(object sender, EventArgs e)
  8.         {
  9.             string[] TextRows = rtBox.Text.Split(new string[] { "\n" }, StringSplitOptions.None);  // splitto la stringa per gli 'a capo' e ottengo le righe del testo
  10.             string FormattedText = "";
  11.             foreach (string Row in TextRows)//ciclo su ogni riga
  12.                 if (Row.Contains(":") && !Row.ToLower().Contains(" info:"))//formatto le categorie diverse da info
  13.                     FormattedText = FormattedText + "<b>" + Row.Replace(":", ":</b>") + "\n";
  14.                 else
  15.                     FormattedText = FormattedText + Row + "\n";
  16.             rtBox.Text = FormattedText; //riscrivo la casella di testo con il testo formattato
  17.         }



Già dai commenti puoi capire cosa ho fatto ma brevemente.. splitto tutto il testo con le mandate a capo ("\n") e nelle stringhe di testo ottenute cerco i :, quindi formatto la prima parola che è uno tra i tanti criteri incolonnati. Infine concateno le righe trattate una ad una e riscrivo il contenuto nella richtextbox.

Problema risolto in modo semplicistico, tenuto conto che non ho idea se il testo digitato è già in html, in tal caso ci sarebbe da agire ulterioremente sul contenuto digitato e relegato al fatto che si dia per scontato che chi immette del testo  lo faccia seguendo lo schema standard sulla falsa riga di questo:

Questo è un testo di prova con Info:
Titolo: nome titolo
Brano: nome brano
Artista: nome artista
        


Osiride80 ha allegato un file: esempio.zip (46391 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Osiride80 il 15/11/2012 alle 16:52
PM Quote
Avatar
kerry (Normal User)
Newbie


Messaggi: 7
Iscritto: 10/10/2012

Segnala al moderatore
Postato alle 19:49
Giovedì, 15/11/2012
Testo quotato

Postato originariamente da nessuno:
Vuoi dire che tu non sei electric?


No non sono io, e quella è l esatta conversazione che ho fatto in un forum di un mio amico dove ho chiesto aiuto, ma va bhe fa niente, sicuramente lo avranno copiato per rispondere al mio originale. Al quanto curioso però :asd:

Osiride80, mi aspettavo giusto qualche consiglio, invece sei andato ben oltre :D
Provato e adattato al mio codice, funziona tutto come dovrebbe, non so davvero come ringraziarti !!  :hail:


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5473
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:01
Giovedì, 15/11/2012
Testo quotato

Postato originariamente da kerry:
No non sono io, e quella è l esatta conversazione che ho fatto in un forum di un mio amico dove ho chiesto aiuto, ma va bhe fa niente, sicuramente lo avranno copiato per rispondere al mio originale. Al quanto curioso però :asd:



Veramente "curioso" ma ho capito ... il tuo "amico" si chiama Archimede e tu hai fatto questa discussione con lui

http://heok.it/index.php?topic=125.0

mentre lui, con il nick di "electric" lo riportava pari pari in

http://forum.html.it/forum/showthread.php?s=&threadid=1528018

facendo credere a te che le risposte erano sue ... :-)))


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Osiride80 (Normal User)
Newbie


Messaggi: 13
Iscritto: 20/05/2010

Segnala al moderatore
Postato alle 21:13
Giovedì, 15/11/2012
Kerry che dire.. per me è stato un piacere aiutarti, a volte fa bene dare una mano a qualcuno quando sei in cerca di una mano pure te.

A risentirci in futuro.. non si sa mai ciao!

PM Quote