View Full Version : [C#]elimare diverse righe in una string
Mattyfog
11-02-2010, 18:41
Ciao,
ho una variabile di tipo string e a questa devo eliminare diverse righe (circa 200/250).
Come posso fare?
C'è una funzione apposta o mi creo io un ciclo?
Mattyfog
13-02-2010, 19:42
niuno?
wingman87
13-02-2010, 20:03
Dipende da in base a cosa certe righe devono essere eliminate.
Mattyfog
13-02-2010, 21:07
dalla prima fino alla n
Prova cosi'
var sr=new StringReader(original);
for (int i = 0; i < 200;i++ )
sr.ReadLine();
var newText = sr.ReadToEnd();
sr.Close();
Mattyfog
24-02-2010, 07:46
oggi provo, bella idea dovrebbe funzionare :)
!k-0t1c!
24-02-2010, 08:51
String.Concat("\n", TUA_STRINGA.Split("\n").Skip(quante_righe_vuoi_saltare).ToArray()) potrebbe essere un modo. Al posto di Skip puoi addirittura usare Where se le righe da saltare non sono consecutive. Se invece sono consecutive ma non sai in partenza quante ne devi saltare puoi usare SkipWhile.
Mattyfog
24-02-2010, 13:26
figata! provo questo :)
Mattyfog
24-02-2010, 13:40
problema!
codice:
string paginahtml = null;
Uri url = new Uri((@"http://www.gracenote.com/music/search-adv.html?q=&qtrack=" + canzone).Replace(" ", "_"));
System.Net.WebClient client = new System.Net.WebClient();
paginahtml = client.DownloadString(url);
paginahtml = String.Concat("\n", paginahtml.Split('\n').Skip(240).ToArray());
FileStream fs = new FileStream(@"percorso\test.xml", FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite);
// create a stream writer
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.ASCII);
// write to file (buffer), where textbox1 is your text box
sw.Write(paginahtml);
// flush buffer (so the text really goes into the file)
sw.Flush ();
// close stream writer and file
sw.Close (); fs.Close ();
Il file che viene salvato contiene questo:
System.String[]
||ElChE||88
24-02-2010, 13:49
Devi usare string.Join, non string.Concat.
string.Concat non ha overload per specificare il separatore.
Mattyfog
24-02-2010, 14:51
si ora va!
e per camcellare da una riga a un'altra?
cioè con questo elimino righe dall'inizio ma per eliminare da un riga x?
Mattyfog
25-02-2010, 15:22
credo di avere un'idea se va poi la posto così altri niubbi come me potranno usufruirne :)
Mattyfog
03-03-2010, 16:18
per eliminare le righe dalla 244 in poi, anche se non srà molto pulito ho fatto così:
paginahtml = paginahtml.Replace(paginahtml.Replace(String.Join("\n", paginahtml.Split('\n').Skip(244).ToArray()), ""), "");
solo che in paginahtml invece che ottenere le righe prima della 244 ottengo solo quelle dalla 244 in poi ossia il contrario!
Ricorda: la pulizia del codice è tutto ;).
Mattyfog
03-03-2010, 17:24
ma mi sembrava meglio questo che un clico for o while.. altre idee con le mie conoscenze non ne ho
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.