Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Visual C#] Filtrare File.Txt
Forum - C# / VB.NET - [Visual C#] Filtrare File.Txt - Pagina 2

Pagine: [ 1 2 3 4 5 6 7 ] Precedente | Prossimo
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:40
Lunedì, 05/11/2012
Testo quotato

Postato originariamente da fusebyte:

Stavolta dove ho sbagliato,mannaggia....




Il risultato è nella stringa res. Se non posti la parte di codice che legge/scrive il file, non si può dire dove hai sbagliato.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 2:41
Martedì, 06/11/2012
Grazie Ruby e Grazie anche a te Nessuno.
Mi studio un po' i vostri codici e credo vi ricontattero'.


Ciao:k:

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 17:28
Mercoledì, 07/11/2012
Testo quotato

Postato originariamente da fusebyte:

Grazie Ruby e Grazie anche a te Nessuno.
Mi studio un po' i vostri codici e credo vi ricontattero'.


Ciao:k:



hahahha:rotfl:
Potere della televisione! :hail:

Ultima modifica effettuata da Renny il 07/11/2012 alle 17:29
PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 21:22
Mercoledì, 07/11/2012
Miiii,che lapsus..scusami ROBY!!!
:k::k::k:

Ciao

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 21:24
Mercoledì, 07/11/2012
In realtà me ne ero accorto, ma non volevo fare il puntiglioso XD

PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 19:44
Venerdì, 09/11/2012
Ragazzi,non ne vengo a capo, quello che riesco a fare è riscrivere su un nuovo file l'intero contenuto del file
originale,ma non me lo filtra, lo riscrive pari pari, input ed output sono identici.

La var dove è caricato il contenuto dell'input è sicuramente _line,
senno' non scriverebbe neanche l'output anche se identico all'input ed il file di output rimarrebbe vuoto.

Non capisco perche' non me lo filtra.

Sia il codice di Nessuno che di Roby mi da lo stesso risultato ( cioe input uguale ad output), ma sicuramente
non dipende da Voi ma da me, che tralascero' qualcosa.

Questo Roby è il tuo codice

Codice sorgente - presumibilmente C# / VB.NET

  1. if (checkBox_MyPrivateData1.Checked)
  2.                     if (!string.IsNullOrEmpty(_line))
  3.                        {
  4.                         try
  5.                         {
  6.                             System.Text.RegularExpressions.Match match = null;
  7.    
  8.                   string input = _line;
  9.  
  10.                   if (System.Text.RegularExpressions.Regex.IsMatch(input, "^http://([^@/]+)@([^@/.]+).([^@/.]{2,3})$"))
  11.  
  12.                   {
  13.    
  14.                       match = System.Text.RegularExpressions.Regex.Match(input, "^http://([^@/]+)@([^@/.]+).([^@/.]{2,3})$");
  15.  
  16.                   }
  17.  
  18.                   else if (System.Text.RegularExpressions.Regex.IsMatch(input, "^http://.*/([^@/]+)@([^@/.]+).([^@/.]{2,3})$"))
  19.    
  20.                   {
  21.  
  22.                       match = System.Text.RegularExpressions.Regex.Match(input, "^http://.*/([^@/]+)@([^@/.]+).([^@/.]{2,3})$");
  23.  
  24.                   }
  25.  
  26.                   if(match != null)
  27.  
  28.                       Console.WriteLine(match.Groups[1] + " " + match.Groups[2] + " " + match.Groups[3]);
  29.  
  30.                   else
  31.                         {
  32.                       Console.WriteLine("false");                      
  33.                         }
  34.                             }
  35.                         catch (Exception)
  36.                       {  
  37.                   }
  38.                  }



e questo è quello di Nessuno

Codice sorgente - presumibilmente C# / VB.NET

  1. if (checkBox_MyPrivareData1.Checked)
  2.  
  3.                   if (!string.IsNullOrEmpty(_line))
  4.  
  5.                           {
  6.  
  7.                               try
  8.  
  9.                               {
  10.  
  11.                                   string res = "";
  12.  
  13.                                      int atpos = _line.IndexOf("@");
  14.  
  15.        
  16.                                             if (atpos>0)
  17.                                               {
  18.          
  19.  
  20.                                                int slpos = _line.LastIndexOf('/', atpos);
  21.  
  22.        
  23.  
  24.                                              if(slpos>0)
  25.  
  26.                                         res = _line.Substring(slpos+1, atpos - slpos-1);
  27.  
  28.                                            }  
  29.  
  30.                                     }
  31.  
  32.                               catch (Exception)
  33.  
  34.                               {
  35.  
  36.                            
  37.                         }
  38.  
  39.                     }




Come potete vedere
nel caso di Roby ho assegnato input a _line
nel caso di Nessuno ho assegnato line a _line

Eppure l'errore lo devo aver fatto per forza di cose.


Ciao

Ultima modifica effettuata da fusebyte il 09/11/2012 alle 19:58
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6404
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:46
Venerdì, 09/11/2012
Se continui a farci vedere solo questa parte di programma, non ne usciamo.

Devi mostrare tutto il codice, dall'apertura del file, alla chiusura, compresa lettura e, soprattutto, scrittura.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 0:17
Mercoledì, 14/11/2012
Risolto.

Vi ringrazio ,la var e' _line , come avevo detto, sbagliavo solo l'ultima riga del il listato di Roby e l'assegnazione della var per quello di Nessuno.

Codice sorgente - presumibilmente C# / VB.NET

  1. Console.WriteLine = (match.Groups[1] + " " + match.Groups[2] + " " + match.Groups[3]);
  2.  
  3.                   else
  4.  
  5.                       Console.WriteLine = ("false");



che ho modificato cosi' e secondo cosa devo stampare vario il numero dei match.Groups().

Codice sorgente - presumibilmente C# / VB.NET

  1. _Line = (match.Groups[1] + " " );     // + match.Groups[2] + " " + match.Groups[3]);
  2.                          else
  3.                                _line = ("false");





@Roby

una cortesia, le stringhe che hai messo usando REGEX mi filtrano solo questo tipo di Formattazione
HTTP://Miei-Appunti@miodatabase.net
mentre mi danno FALSE se trova una stringa formattata diversamente,tipo

HTTP://Susanna-Classe1a@scuola/elementare.pagella
HTTP://Alessio-Classe5b@scuola.media/Lunedi/ginnastica.1ora


il problema è che conoscendo poco la sintassi delle stringhe REGEX non sono riuscito ad aggiungere le stringhe giuste che servono per filtrare anche questo tipo di URL.

Codice sorgente - presumibilmente C# / VB.NET

  1. if (System.Text.RegularExpressions.Regex.IsMatch(input, "^http://([^@/]+)@([^@/.]+).([^@/.]{2,3})$"))
  2.  
  3.     {
  4.  
  5. match = System.Text.RegularExpressions.Regex.Match(input, "^http://([^@/]+)@([^@/.]+).([^@/.]{2,3})$");
  6.  
  7.    }
  8.  
  9.   else if (System.Text.RegularExpressions.Regex.IsMatch(input, "^http://.*/([^@/]+)@([^@/.]+).([^@/.]{2,3})$"))
  10.  
  11.     {
  12.  
  13.  match = System.Text.RegularExpressions.Regex.Match(input, "^http://.*/([^@/]+)@([^@/.]+).([^@/.]{2,3})$");



Potresti aiutarmi a capire come scrivere le REGEX per le URL in BLU o se c'è una sintassi che puo' essere valida per qualsiasi tipo di stringa e se non ti scoccia capire il significato di quei simboli?

Ti Ringrazio moltissimo.
--------------------------------------------------------------------------------------------------------------------


Grazie anche a te Nessuno, pero' nonostante provi e riprovi il risultato è, o il file output.txt vuoto o uguale all'input.
Il file di Input.txt è caricato e assegnato alla var _line , sapendo questo, cosa dovrei modificare nel listato, perche'  ho provato davvero in molti modi ma non sono riuscito a filtrare il txt nel modo corretto.
Cmq,Grazie.

Ciao Fuse

Ultima modifica effettuata da fusebyte il 14/11/2012 alle 4:24
PM Quote
Pagine: [ 1 2 3 4 5 6 7 ] Precedente | Prossimo