Tabulacja w pliku

0

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

0

Możesz przeczytać linie po lini użyć metody Trim i zapisać do pliku.

0

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

0

Pewnie dlatego, że Trim() zwraca przetworzony string, ale nie modyfikuje tego, na którym został wywołany.

1

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ć.

0
File.WriteAllLines("Plik2.txt", File.ReadAllLines("Plik.txt").Select(s=>s.Trim()));

jakoś tak.
nie sprawdzane.

1

Możesz po prostu zrobić

text = text.Replace("\t", string.Empty);

Usunie to wszystkie tabulatory.

1 użytkowników online, w tym zalogowanych: 0, gości: 1