Kasiu napisał(a)
W jaki sposób usunąć Pierwsze linie z : 1r, 1k, i setki innych, zatem te bez * aby
pozostały tylko:
1r* tralala
1k* bum bum bum
Rozumiem, że chcesz usunąć wszystkie linie równe 1k
i 1r
, pozostawiając wszystkie puste i te, które zawierają znak *
? Jeśli tak, polecam to, co napisał @pelsta:
- otwórz plik do odczytu
- otwórz nowy plik do zapisu
- powtarzaj
3.1. odczytaj linię
3.2. jeżeli zawiera znak *
lub linia jest pusta
3.2.1. zapisz ją do nowego pliku
- dopóki natrafisz na koniec pliku
- zamknij plik do odczytu
- zamknij plik do zapisu
- usuń plik do odczytu
- (opcjonalnie) zmień nazwę pliku do zapisu
To wszystko; Możesz to zrobić na dwa sposoby sprawdzając, czy:
- linia jest pusta lub zawiera znak
*
- linia jest równa
1k
lub 1r
Wszystko zależy od gustu;
TomRiddle napisał(a)
wczytaj cały plik do np. TString albo TStringList, (na biedę do TMemo)
Wczytywanie całego pliku do TStrings
czy TStringList
jest powolne, a już najgorszym rozwiązaniem jest ładowanie go do TMemo
- tak jak napisał niedawno @Misiekd - TMemo
nie służy do operacji na tekscie, ale do jego wyświetlania - w pełni się z tym zgadzam; Najszybszym rozwiązaniem jest powyższy sposób zważywszy na to, że plik zajmuje kilka megabajtów; W każdym razie i tak nie ma większego sensu wczytywać całego pliku do pamięci;
Kasiu - napisz sobie algorytm, zrób kopię pliku na wypadek, gdyby algorytm działał niepoprawnie i przetestuj go; Jeśli coś jeszcze nie będzie działać jak należy - podaj kod a My coś doradzimy;