/ / Edycja konkretnej linii pliku tekstowego w asp.net? - c #, asp.net

Edycja konkretnej linii pliku tekstowego w asp.net? - c #, asp.net

Muszę zmienić konkretną linię tekstuplik w asp.net. Czy mogę zmienić / zamienić tekst tylko w określonej linii? Użyłem funkcji zamiany w pliku tekstowym, ale zastępuję tekst w całym pliku. Chcę zastąpić tylko jedną określoną przeze mnie linię.

Czekam na odpowiedź ..

Z góry dziękuję..

Odpowiedzi:

6 dla odpowiedzi № 1

Systemy plików zasadniczo nie pozwalają na edycję w pliku inny niż bezpośrednio nadpisuje bajt po bajcie. Gdyby twój plik tekstowy używa tej samej liczby bajtów dla każdej linii, możesz bardzo skutecznie zastąpić linię tekstu - ale jest to stosunkowo rzadki przypadek w tych dniach.

Jest bardziej prawdopodobne, że będziesz potrzebował jednej z tych opcji:

  • Załaduj cały plik do pamięci za pomocą File.ReadAllLines, zmień odpowiednią linię, a następnie zapisz ją ponownie, używając File.WriteAllLines. Jest to nieefektywne pod względem pamięci, ale naprawdę proste do zakodowania. Jeśli twój plik jest mały, jest to dobra opcja.
  • Otwórz plik wejściowy i nowy plik wyjściowy. Odczytaj wiersz tekstu na raz z wejścia i albo kopiuj go na wyjście, albo pisz w innym wierszu. Następnie zamknij oba pliki, usuń plik wejściowy i zmień nazwę pliku wyjściowego. Wymaga to tylko jednego wiersza tekstu w pamięci na raz, ale jest znacznie bardziej skrzypiący.

Druga opcja ma inną zaletę - możesz tasować pliki wokół (używając wielu kroków zmiany nazwy), aby na Bez sensu czy kiedykolwiek masz możliwość utraty pliku wejściowego, chyba że plik wyjściowy jest znany jako kompletny i we właściwym miejscu. To jeszcze bardziej skomplikowane.