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 - Ricerca Stringa In Text Multiline [VB o C#]
Forum - C# / VB.NET - Ricerca Stringa In Text Multiline [VB o C#]

Avatar
xProgrammer89x (Normal User)
Newbie


Messaggi: 14
Iscritto: 31/01/2013

Segnala al moderatore
Postato alle 20:47
Giovedì, 31/01/2013
Salve, prima di tutto, mi presento col dire che studio informatica, e che ho trovato questo forum tramite google.

Ho dato un'occhiata ed ho visto che è fatto da gente esperta, con guide ottime, ed interessanti threads.

Ho aperto questo post per chiedere un piccolo aiutino.

Dunque ho una textbox multiline di 250 (TextBoxML) parole una sotto l'altra, quindi separate da un "newline/da capo"

Quello di cui avrei bisogno, è di controllare data una parola/stringa in input (inserita in un'altra textbox single line TextSearch), di cercarla all'interno della lista delle 250, e restituire tramite msgbox "è presente" o "non è presente"

Ho provato ad usare if (TextBoxML.Text.Contains(TextSearch.Text)) {/* Msg */}

C'è un problema, se nella lista c'è la parola TRONCO ed io faccio cercare ONCO il programma restituisce "è presente" perchè giustamente ONCO è presente in lista, ma io avrei bisogno confrontare la stringa in input con le parole intere nella lista.

Spero di essere stato chiaro, qualcuno può darmi qualche suggerimento? (Vanno bene entrambi i linguaggi come da titolo)

Grazie in anticipo.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:20
Giovedì, 31/01/2013
hai 250 parole, fai un array e controlla lì........ tanto la dimensione è fissa e la sai.....

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 21:27
Giovedì, 31/01/2013
Io ti consiglio di non cercare la parola, ma cercare carattere di accapo + parola, in questo modo eviti l'inconveniente che la tua parola sia contenuta in un altra. L'unica eccezione che dovrai gestire usando questo escamotage è nel controllare singolarmente la prima parola, poichè essa non è preceduta da un carattere di ritorno e perciò non la troverebbe mai..

credo che da questo codice di esempio capirai più facilmente:

Codice sorgente - presumibilmente C# / VB.NET

  1. if ((textBox2.Text.Substring(0, textBox1.Text.Length).Equals(textBox1.Text))||(textBox2.Text.Contains("\n" + textBox1.Text)))
  2.             {
  3.                 MessageBox.Show("Presente");
  4.             }
  5.             else
  6.                 MessageBox.Show("Non Presente");



...
PM Quote
Avatar
xProgrammer89x (Normal User)
Newbie


Messaggi: 14
Iscritto: 31/01/2013

Segnala al moderatore
Postato alle 21:27
Giovedì, 31/01/2013
Testo quotato

Postato originariamente da TheDarkJuster:

hai 250 parole, fai un array e controlla lì........ tanto la dimensione è fissa e la sai.....



L'avevo pensato, ma l'ho subito scartata.

Non esiste un sistema alternativo?

Perchè dovrei fare in seguito la stessa cosa con dei numeri [ID] che nel giro di 1 mese diventeranno anche migliaia, e sinceramente non saprei nemmeno la dimensione massima di un array.

In ogni caso dovrei fare anche un algoritmo per controllare tutto l'array, e sarebbe ideale che ci impiegasse pochissimo tempo a fare il controllo.

Hai altre idee?

PM Quote
Avatar
xProgrammer89x (Normal User)
Newbie


Messaggi: 14
Iscritto: 31/01/2013

Segnala al moderatore
Postato alle 21:30
Giovedì, 31/01/2013
Testo quotato

Postato originariamente da GrG:

Io ti consiglio di non cercare la parola, ma cercare carattere di accapo + parola, in questo modo eviti l'inconveniente che la tua parola sia contenuta in un altra. L'unica eccezione che dovrai gestire usando questo escamotage è nel controllare singolarmente la prima parola, poichè essa non è preceduta da un carattere di ritorno e perciò non la troverebbe mai..

credo che da questo codice di esempio capirai più facilmente:

Codice sorgente - presumibilmente C# / VB.NET

  1. if ((textBox2.Text.Substring(0, textBox1.Text.Length).Equals(textBox1.Text))||(textBox2.Text.Contains("\n" + textBox1.Text)))
  2.             {
  3.                 MessageBox.Show("Presente");
  4.             }
  5.             else
  6.                 MessageBox.Show("Non Presente");




Mi sembra un'ottima idea, non sapevo che si potesse usare anche "\n" nel contains.

Per la prima parola problema non c'è, posso inserirne un'altra inutile ancora sopra, tanto per il lavoro che ho da fare non mi comporterebbe alcun fastidio.

Che dire, non appena termino un altro progetto, lo provo subito e ti faccio sapere, grazie mille.

PM Quote