Dopisywanie takiego samego wyrazu przed wyrazami już istniejącymi w pliku

0

Witam,

Mam plik txt w którym linia po lini jest napisanych kilkanaście tysięcy nazw i gatunków zwierząt. i chciałbym żeby przed każdym wyrazem dodać do istniejących już nazw prefiks nz@z-

Teraz jest tak:

koń
pies
lew
kuna

a chciałbym żeby było tak:

nz@z-koń
nz@z-pies
nz@z-lew
nz@z-kuna

Języki jakie znam to tylko html i php w stopniu lekkim.
Pewnie jest to prosta komenda ale ja tego niestety nie potrafię zrobić. Próbowałem ręcznie dodawać prefiks ale zrezygnowałem przy którymś setnym wyrazie.

Proszę o pomoc.

dodanie znaczników <code> - furious programming

2

Praktycznie nie da się wstawić cokolwiek w środek pliku.
Tworzysz nowy plik o odpowiednim "kształcie", usuwasz stary plik, przemianowujesz nowy plik.

0

Dobra! Poradziłem sobie. Dla kogoś kto szuka prostego sposobu jak zrobić to co opisałem należy:

1.Otworzyć naszą listę w txt i skopiować wszystko.

2.Otworzyć program Microsoft Word

3.Kliknąć prawym przyciskiem myszy w miejsce gdzie miga kursor i wybrać Punktory i numeracja i zaznaczyć którekolwiek punkty.

4.Wkleić swoją listę.

5.Skopiować wszystko (ctrl + a)

6.Wkleić do Notatnika

7.Wejść do Edit -> Replace -> ustawić Find what (tutaj należy skopiować wszystko od początku punktu aż do samego wyrazu i wkleić w to miejsce) i Replace with (ustawić na to co chcemy w moim przypadku na nz@z-) i kliknąć Replace all i gotowe :)

Fajne forum, dzięki za podpowiedź.
Pozdrawiam

0

To mówimy o pliku czy liniach?
Jak ci się cały plik mieści w pamięci to możesz wczytać cały, podmienić w ciągu, zapisać.

2

Teoretycznie istnieje możliwość wstawienia na chama danych do środka pliku, jednak jest to dużo bardziej złożone, niż załadowanie zawartości pliku do pamięci, odpowiednia jej obróbka i ponowny zapis do tego samego pliku;

Można stworzyć zwykły strumień, np. wykorzystując TFileStream (jeśli o Delphi chodzi), znaleźć początek i koniec danej linii, powiększyć rozmiar pliku o ilość nowych znaków, przesunąć dane od znalezionej linii o ilość znaków wstawianego ciągu, po czym wstawić nowy łańcuch we wcześniejsze miejsce, w kórym przed przesunięciem danych był pierwszy znak danej linii; Taką operację trzeba by powtórzyć dla każdej linii pliku, co oczywiście się nie opłaca, bo złożoność zadania mocno rośnie, a nie wiadomo czy uda się zyskać na szybkości (potrzebne by były testy);

Jeśli bardzo chcesz, to możesz sobie napisać taki algorytm, ale jedynie w ramach treningu czy samozaspokojenia, bo jego zastosowanie w praktyce raczej utrudni pisanie kodu, niż w czym kolwiek pokona istniejące sposoby.

0

Dzięki _13th_Dragon za pierwszą odpowiedź. Poszedłem w tym kierunku co go powiedziałeś i faktycznie zrobiłem nowy dokument ale w "lepszym" programie i tam ustawiłem to co trzeba i wróciłem do "gorszego" programu, podmieniłem to co trzeba i jest dobrze :) kilkanaście godzin zaoszczędzone.
Jeszcze raz dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1