Witam.
Jak usunąć tabulację z pliku txt? Tabulacja występuje losowo w niektórych linach np.
aa
bb
aa
aa
bb
I teraz jak zrobić aby było "normalnie" czyli:
aa
bb
aa
aa
bb
Witam.
Jak usunąć tabulację z pliku txt? Tabulacja występuje losowo w niektórych linach np.
aa
bb
aa
aa
bb
I teraz jak zrobić aby było "normalnie" czyli:
aa
bb
aa
aa
bb
Możesz przeczytać linie po lini użyć metody Trim i zapisać do pliku.
Niestety, nie wiem czemu, ale Trim nie chce mi działać
Próbowałem tak:
string variable = File.ReadAllText("Plik.txt");
variable.Trim();
Nie działa
I tak:
string[] variable = System.IO.File.ReadAllLines("Plik.txt");
string variable2 = variable.ToString();
variable2.Trim();
I też nie działa
Pewnie dlatego, że Trim()
zwraca przetworzony string, ale nie modyfikuje tego, na którym został wywołany.
Nie rozumiesz jak działa metoda Trim, nie przeczytałeś w ogóle w dokumentacji jak ona działa, dlaczego?
Metoda trim usuwa białe znaki (spacje, taby) z początku i z końca stringa. Nie ze srodka.
Natomiast metoda ReadAllText zwraca Ci wszystkie linijki jako jeden wielki string. Robiąc na tym stringu trim usuwasz ewentualne taby z początku pierwszej linii i z końca ostatniej (bo to początek i koniec stringa).
Drugie podejscie jest troche lepsze, ale nawet nie sprawdzasz co robi ToString dla Array. W takim wypadku dostaniesz "System.String[]" i na tym ponownie wykonujesz Trima.
Poprawne podejscie:
Wczytujesz plik jako tablica stringów, potem w pętli (for, foreach, LinQ) przechodzisz po nich i dla każdej osobnej linijki wykonujesz Trim. Potem tak zmodyfikowana tablię zapisujesz ponownie do pliku.
Aha. Trim nie modyfikuje stringa, on zwraca nowy obcięty string. Wynik Trim'a musisz gdzies zapisać.
File.WriteAllLines("Plik2.txt", File.ReadAllLines("Plik.txt").Select(s=>s.Trim()));
jakoś tak.
nie sprawdzane.
Możesz po prostu zrobić
text = text.Replace("\t", string.Empty);
Usunie to wszystkie tabulatory.