Mam w pliku tekstowym zapisane elementy rozdzielone znakiem "-", oczywiście jedna grupa elementów = jedna linia. Jak najwygodniej i najprościej edytować ten plik tekstowy (wyszukanie linii i zamiana jej, ewentualnie skasowanie tej linii i dodanie nowej, zmienionej na końcu)?
- Rejestracja:prawie 13 lat
- Ostatnio:ponad 12 lat
- Postów:13
Rev napisał(a):
Właśnie tak. Wczytaj, zmień, zapisz.
Załóżmy, że mam 1000 linii, chce zmienić jedną z nich. Więc muszę wczytać 1000 linii do pamięci, zmienić jedna i ponownie wszystko zapisać w pliku? Nie ma możliwości zmiany bez wczytywania całego pliku?

- Rejestracja:ponad 21 lat
- Ostatnio:2 dni
Nie ma możliwości zmiany bez wczytywania całego pliku?
W przypadku pliku tekstowego nie bardzo, bo wydłużenie jednej linii o chociaż jeden znak powoduje, że cała dalsza zawartość pliku o ten jeden bajt się przesuwa.
To nie jest jakieś „techniczne ograniczenie” że nie da się zmienić fragmentu pliku (bo się da), tylko w twoim przypadku (czyli pliku tekstowego) nie ma po prostu innej możliwości niż przepisać cały plik.
- Rejestracja:prawie 13 lat
- Ostatnio:ponad 12 lat
- Postów:13
Azarien napisał(a):
Nie ma możliwości zmiany bez wczytywania całego pliku?
W przypadku pliku tekstowego nie bardzo, bo wydłużenie jednej linii o chociaż jeden znak powoduje, że cała dalsza zawartość pliku o ten jeden bajt się przesuwa.
To nie jest jakieś „techniczne ograniczenie” że nie da się zmienić fragmentu pliku (bo się da), tylko w twoim przypadku (czyli pliku tekstowego) nie ma po prostu innej możliwości niż przepisać cały plik.
Dzięki za odpowiedź.
Tak już troszeczkę poza tematem, nie licząc baz danych, w jakich plikach najlepiej trzymać dane?

- Rejestracja:około 17 lat
- Ostatnio:dzień
- Lokalizacja:Wrocław
adaxo napisał(a):
Tak już troszeczkę poza tematem, nie licząc baz danych, w jakich plikach najlepiej trzymać dane?
Zależy jakie dane.

- Rejestracja:ponad 21 lat
- Ostatnio:prawie 12 lat
Azarien napisał(a):
To nie jest jakieś „techniczne ograniczenie” że nie da się zmienić fragmentu pliku (bo się da), tylko w twoim przypadku (czyli pliku tekstowego) nie ma po prostu innej możliwości niż przepisać cały plik.
Tak na dobrą sprawę wystarczy przepisać wszystko za edycją, to co przed może zostać. Z tym, że w przypadku ok. 1000 linii nie ma co się babrać.
- Rejestracja:prawie 13 lat
- Ostatnio:ponad 12 lat
- Postów:13
somekind napisał(a):
adaxo napisał(a):
Tak już troszeczkę poza tematem, nie licząc baz danych, w jakich plikach najlepiej trzymać dane?
Zależy jakie dane.
Tekst + liczby. :) Jedna linia to zazwyczaj 100-200 znaków wraz ze spacjami.
adf88 napisał(a):
Azarien napisał(a):
To nie jest jakieś „techniczne ograniczenie” że nie da się zmienić fragmentu pliku (bo się da), tylko w twoim przypadku (czyli pliku tekstowego) nie ma po prostu innej możliwości niż przepisać cały plik.
Tak na dobrą sprawę wystarczy przepisać wszystko za edycją, to co przed może zostać. Z tym, że w przypadku ok. 1000 linii nie ma co się babrać.
W takim razie jaką funkcję polecasz, by modyfikować plik od konkretnej linii?

- Rejestracja:około 17 lat
- Ostatnio:dzień
- Lokalizacja:Wrocław
LOLXML napisał(a):
A co za problem utworzyć i trzymać to w ładnym pliku XML?
Taki, że XML nie jest ładny.

- Rejestracja:około 17 lat
- Ostatnio:dzień
- Lokalizacja:Wrocław
LOLXML napisał(a):
Jak ktoś nie wie do czego służy i jak go obsłużyć to może i ładny nie jest.
Bazodanowcy są jednak odmiennego zdania.
Autor pyta o przetworzenie istniejącego pliku tekstowego, więc po co wyskakujesz z jakimś XML i bazodanowcami?
Jeśli zaś stosujesz XML do przechowywania każdych danych, to faktycznie nie wiesz do czego on służy.