Usuwanie wierszy z tekstu
-
- Posty: 71
- Rejestracja: 05 mar 2007 00:00
Usuwanie wierszy z tekstu
Witam
Chciałbym się zapytać czy istnieje jakiś inny sposób usuwania określonych wierszy z tekstu, od tego zaprezentowanego na rys 1.
Moje rozwiązanie działa, jednak w sytuacji gdy zamieniam tekst na tablice tekstową, po to żeby po usunięciu dwóch wierszy zamienić, tablicę tekstową, z powrotem na tekst nie do końca wydaje mi się właściwe.
Pozdrawiam
CHRISTOPCHER
Chciałbym się zapytać czy istnieje jakiś inny sposób usuwania określonych wierszy z tekstu, od tego zaprezentowanego na rys 1.
Moje rozwiązanie działa, jednak w sytuacji gdy zamieniam tekst na tablice tekstową, po to żeby po usunięciu dwóch wierszy zamienić, tablicę tekstową, z powrotem na tekst nie do końca wydaje mi się właściwe.
Pozdrawiam
CHRISTOPCHER
Ostatnio zmieniony 12 sty 2008 04:51 przez CHRISTOPCHER, łącznie zmieniany 1 raz.
Re: Usuwanie wierszy z tekstu
Potrzeba więcej szczegółów:
usuwasz całą linijkę tekstu, czy może wyszukujesz w tekście określoną frazę,
lub kasujesz tekst o określonej długości począwszy od któregoś w kolejności znaku?
usuwasz całą linijkę tekstu, czy może wyszukujesz w tekście określoną frazę,
lub kasujesz tekst o określonej długości począwszy od któregoś w kolejności znaku?
-
- Posty: 71
- Rejestracja: 05 mar 2007 00:00
Re: Usuwanie wierszy z tekstu
Uściślając chce usuwać całe linijki z tekstu, natomiast usunięte linie maja być zastępowane przez następne, jeśli istnieją.
Re: Usuwanie wierszy z tekstu
Twoje rozwiazanie jest jak najbardziej wlasciwe, nalezy najpierw rozbic string na tablice i usunac okreslone wiersze, potem zlozyc tablice w string.
Jesli wykonujesz to wiele raz i chcesz usprawnic to proponuje rozwiazanie z rysunku. jest bardziej optymalne niz zwykly DELETE FROM ARRAY, bo nie wymaga dealokacji pamieci. w TRUE jest REPLACE ARRAY SUBSET, a w FALSE nie ma nic. na koncu RESHAPE ARRAY (mozna dac tez SPLIT 1D ARRAY). przy duzych tablicach i czestym stosowaniu ta metoda jest duzo szybsza niz zwykly DELETE.
Jesli wykonujesz to wiele raz i chcesz usprawnic to proponuje rozwiazanie z rysunku. jest bardziej optymalne niz zwykly DELETE FROM ARRAY, bo nie wymaga dealokacji pamieci. w TRUE jest REPLACE ARRAY SUBSET, a w FALSE nie ma nic. na koncu RESHAPE ARRAY (mozna dac tez SPLIT 1D ARRAY). przy duzych tablicach i czestym stosowaniu ta metoda jest duzo szybsza niz zwykly DELETE.
- wino
- Posty: 549
- Rejestracja: 23 gru 2005 00:00
- Wersja środowiska: Nie mam LabVIEW
- Lokalizacja: Kraków
Re: Usuwanie wierszy z tekstu
tak powinno być dużo szybciej, jest tylko jedna pętla a nie tak jak w twoim przykładzie dwie.
Re: Usuwanie wierszy z tekstu
nie widze zeby w moim przykladzie byly dwie petle, jest tylko jedna petla FOR.
poza tym twoje rozwiazanie tyczy sie tyko kasowania jednego elementu ze stringu i jest malo optymalne dla duzych stringow, bo jesliby tablica miala tysiace elementow i probowalebys usunac jeden z koncowych elementow to czas wykonywania tego bardzo sie wydluza.
rozwiazenie, ktore zapropnowalem (tak jak napisalem dla operacji wielokrotnych i na duzych stringach) bez wgledu, ktory i ile elementow chcemy usunac ze stringu wykonuje sie w podobnym czasie.
zalaczam VI, gdzie mozna sobie sprawdzic czas wykonywania dla tablicy np 100000 elementow z ktorej chcemy usunac np 10000 element. roznica w szybkosci dla obu algorytmow jest 10-krotna.
operacje na tablicach sa duzo bardziej optymalne niz na stringach.
poza tym twoje rozwiazanie tyczy sie tyko kasowania jednego elementu ze stringu i jest malo optymalne dla duzych stringow, bo jesliby tablica miala tysiace elementow i probowalebys usunac jeden z koncowych elementow to czas wykonywania tego bardzo sie wydluza.
rozwiazenie, ktore zapropnowalem (tak jak napisalem dla operacji wielokrotnych i na duzych stringach) bez wgledu, ktory i ile elementow chcemy usunac ze stringu wykonuje sie w podobnym czasie.
zalaczam VI, gdzie mozna sobie sprawdzic czas wykonywania dla tablicy np 100000 elementow z ktorej chcemy usunac np 10000 element. roznica w szybkosci dla obu algorytmow jest 10-krotna.
operacje na tablicach sa duzo bardziej optymalne niz na stringach.
Ostatnio zmieniony 13 sty 2008 18:37 przez maszup, łącznie zmieniany 1 raz.
-
- Posty: 71
- Rejestracja: 05 mar 2007 00:00
Re: Usuwanie wierszy z tekstu
Dziąkuje za zainteresowanie tematem i zaprezentowane rozwiazania. Właśnie w moim programie są analizowane bardzo dużo danych w postaci tekstowej, która po rozbiciu na tablice dochodzi do rozmiarów 700 wierszy po 7500 kolumn. Moje pytanie wynikało z faktu że długo trwa czas rozbicia takiego stringu na tablice, jednak jeśli to jest właściwa metoda, gdy chce usuwać całe wiersze postanowilem że konwersja będzie się odbywała jedynie na początku podczas odczytu danych z pliku i na końcu podczas zapisu, natomiast wszystkie operacje będą wykonywane na tablicach.
Pozdrawiam
CHRISTOPCHER
Pozdrawiam
CHRISTOPCHER
Ostatnio zmieniony 14 sty 2008 12:42 przez CHRISTOPCHER, łącznie zmieniany 1 raz.
- wino
- Posty: 549
- Rejestracja: 23 gru 2005 00:00
- Wersja środowiska: Nie mam LabVIEW
- Lokalizacja: Kraków
Re: Usuwanie wierszy z tekstu
no spoko:)
:-#
:-#