Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]przenoszenie PATH z jednej części linii kodu do innej
qpanas
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 2
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


Mam problem, z którym borykam się od kilku dni. Mam kilka plików z dziesiątkami tysięcy linii do przerobienia. To pytania i odpowiedzi dla Mnemosyne - kurs angielskiego, który sobie wyeksportowałem z oryginalnego Supermemo (legalnej kopii - po prostu skończyłem z Windowsem a pod Linuksem nie dało się używać z oczywistych względów). Format danych w każdej linii jest identyczny i wygląda tak

Cytat
jakiś_tekstTABjakiś_inny_tekst<br><sound src="PATH">


Mnemosyne odczytuje pojedynczą linię i wyświetla ją sformatowaną na podstawie występowania tabulatora. Część, która jest przed tabem jest wyświetlana w jednym oknie, a część po tabie w drugim pod naciśnięciu klawisza "pokaż odpowiedź" i dodatkowo odtwarza się plik dźwiękowy, do którego ścieżka jest po znaczniku <br>
Niestety okazuje się, że muszę przenieść wszystkie ścieżki na lewą stronę tabulatora. Niby prosta operacja w edytorze tekstu CTR-A, CTR-X, CTR-V. Tylko przy ponad dwustu tysiącach linii robiłbym to z rok, albo i dłużej. Chciałem wyprodukować jakiś skrypt albo znaleźć komendę pod konsolą linuksową, która by to z automatu zrobiła. Ale poległem. Próby z sed nie przyniosły skutku (potrafię tylko kilka bardzo prostych rzeczy z jego pomocą zrobić) a programistą nie jestem. Czy wie ktoś jak się do tego zabrać? Będę wdzięczny za każdą pomoc.

Ten post edytował qpanas 15.07.2009, 21:41:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kipero
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

Ostrzeżenie: (0%)
-----


No to możesz zastosować ten skrypt, który napisałem, ewentualnie otwórz ten plik w jakimś edytorze z obsługą wyrażeń regularnych. Ja do testów użyłem Notepad++ i dla tego edytora napiszę co i jak:
- otwierasz plik
- menu "Szukaj"|"Zamień"(CTRL + H)
- zaznaczasz tryb szukania na "Wyrażenia regularne"
- w polu "Szukany tekst" wpisujesz: ([^\t]+)\t([^<]+)<br>(.*)
- w polu "Zamień na": \1<br>\3\t\2
Na trochę może to zamulić kompa, ale działa(ja testowałem dla 14k rekordów i trwało dobrą minutę).

Poza tym zrób sobie kopię pliku tej bazy, bo:
Cytat
jak przeniesie jakąś ścieżkę do innej linii to za diabła nie połapię się w tym i cały kurs angielskiego będzie do kosza
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 18:11