Zastąpienie danego znaku/lini w otwartym pliku

Odpowiedz Nowy wątek
2015-01-17 05:21
0

Witam.
Mógłby ktoś podpowiedzieć jak, jeśli się da bezpośrednio zastąpić jeden znak w całym pliku, chce zmienić jeden znak z 0 na 1 jezeli się wykona dana metoda. Próbowałem użyc replace, oraz usunać tą linie i w otwartym pliku odrazu dopisać na to miejsce.
Mniej więcej wywoływałem to tak:

 file.Replace("0","1")

Oraz

file.Replace("Tu wpisywałem całą linie jaka się znajduje w pliku txt z 0","A tu tą samą linie tylko, że zamiast 0 było 1") 

Próbowałem też usunąc cały linkZa pomoca line.Remove();

line to moja nazwa strumienia

Jeszcze jedno pytanie jak zawinąc tekst w listboxie. Bo jak wpisze i się nie zmieści to ucina mi tekst. Tak samo ze skrolowanie. Probowalem ustawiac ze jak bedzie już pełny lisbox, żeby przewijało się do wiadomości na samym dole. Wiem, że gdzieś to we właściwościach się robiło, ale jakoś mi nie chce przewijać.

edytowany 1x, ostatnio: baca1616, 2015-01-17 08:44

Pozostało 580 znaków

2015-01-17 10:42
0
string text = File.ReadAllText("test.txt");
text = text.Replace("0", "1");
File.WriteAllText("test.txt", text);
a zadziała to w pliku gdzie jest wiele linijek i te 0 nalezy zmienic nie na poczatku ale na w srodku zdania. Dla przykładu powiedzmy,że plik wygląda tak: #Login#baca1616#Strona#4programers#Status#0#DzienTygodnia#Poniedzialek #Login#dam1an#Strona#msdn#Status#0#DzienTygodnia#Wtorek #Login#qwerty#Strona#wp#Status#0#DzienTygodnia#Sroda #Login#bartek#Strona#qwerty#Status#0#DzienTygodnia#Poniedzialek i chce zmienic z 0 na 1 dla uzytkownika qwerty. Musze to dac w otwartym strumieniu ktory przeglada linia po lini wewnatrz pętli while((line = file.ReadLine()) != null) ? - baca1616 2015-01-17 18:26
Pisz w postach. Jak dużo to jest wiele dla ciebie? - dam1an 2015-01-17 18:47

Pozostało 580 znaków

2015-01-17 19:31
0

Czy duzo to nie wiem. Ten plik rosnie z kazdym momentem. Załóżmy, że koło 50 lini mam wyszukiwanie poszczególnych słów więc tylko zamiana mi została napisałem że znajduje ten #Status#i bierze jeden znak właśnie 0 albo 1, więc chodzi tylko o zamianę, to czy będzie przeglądac ten plik pół sekundy czy nawet 5minut na tym poziomie nie będzie miał znaczenia, aby by zmieniało.

Pozostało 580 znaków

2015-01-17 19:50

50 linii to jest nic. Jeśli ma zmieniać na pewno tylko jedną linię to daj tak:

            string[] text = File.ReadAllLines("file.txt");
            for (int i = 0; i < text.Length; i++)
            {
                if (text[i].Contains("dam1an"))
                {
                    text[i] = text[i].Replace("Status#0", "Status#1");
                    break;
                }
            }
            File.WriteAllLines("file.txt", text);

Zmieni tą linię gdzie znajduje się słowo dam1an

Jeśli zajdzie potrzeba że ma zmieniać więcej linii to usuń break

edytowany 1x, ostatnio: dam1an, 2015-01-17 19:51

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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