[Notepad++] Podwajanie różnych wartości


(dragomi2002) #1

Witam. Mam takie pytanie: Czy można edytować wszystkie liczby w jednym pliku ( np. je podwoić) przykład:
Kasa 1 ="50"
Kasa 2 ="140"
Kasa 3 ="200"
I teraz chciałbym otrzymać
Kasa 1 ="100"
Kasa 2 ="280"
Kasa 3 ="400"
Nie mogę zrobić tego ręcznie bo takich linijek jest kilkadziesiąt tysięcy.
Pozdrawiam!


(hindus) #2

Potrzebujemy Excel / Google Drive Spreadsheet / OpenOffice Calc

  1. [N++] Zamieniamy ciąg znaków =" na ="\t aby dodać tabulaturę przed liczbą
  2. [N++] Zamieniamy ciąg znaków "\n (albo skopiować od początku linijki niżej do cudzysłowa powyżej, żeby ująć też znak nowej linii) na \t"\n aby dodać tabulaturę za liczbą
  3. Ctrl + A, Ctrl + C, wklejamy do arkusza kalkulacyjnego
  4. Treści powinny zająć 3 kolumny rozdzielone tam gdzie wstawiliśmy tabulaturę. Jeśli tak nie jest, zamieniamy w N++ \t na ; po czym zapisujemy jako CSV i importujemy taki plik do arkusza - efekt powinien być ten sam tylko więcej roboty
  5. Dodajemy kolumnę na prawo od liczby
  6. Wpisujemy formułę =[pole z lewej]*2 gdzie wpisujemy oczywiście adres pola z liczbą
  7. “Rozciągamy” tą wartość do końca arkusza
  8. Usuwamy oryginalną kolumnę z liczbą
  9. Ctrl + A, Ctrl + C, wklejamy od nowego pliku w N++
  10. Zamieniamy tabulaturę na pusty ciąg znaków
  11. Gotowe

(krystian3w) #3

Zapomniałeś polecić zmianę trybu by wykrywało \t czy \n

image

Oraz zależy jaką ma platformę (lub aplikacja tryb):

System/Platforma - kodowanie znaku końca wiersza
Windows - \r\n
GNU/Linux, Unix - \n
macOS - \r

Może przypadkiem otwierać zamiast przekopiowywać i będzie się dziwić czemu nie wykrywa.


Problematyczny może być ostatni wiersz.


(hindus) #4

Racja, ja mam u siebie w zasadzie na stałe ustawiony tryb rozszerzony zamiany :wink: I rzeczywiście ostatni wiersz będzie nieliczbowy, więc mnożenie zwróci błąd komórki - powinno być łatwo zauważalne i do poprawienia ręcznie.


(dragomi2002) #5

Dzięki za wszystkie porady. Źle opisałem problem bo myślałem że da się to zrobić za pomocą notepada ale jednak trzeba użyć Excela. Problem jest nadal bo ten plik zapisany jest w formacie .xml
https://zapodaj.net/57844bb9abd67.png.html
I chce podwoić wszystkie min_damage i max_damage (potem mają różne wartości) w tym pliku
Otworzyłem to w Excelu ale nie mogę zapisać
https://zapodaj.net/30904d603fecc.png.html
https://zapodaj.net/61c6057f8dbff.png.html
Jak to zrobić aby mi to zapisało. Bo jak chce edytować to chyba muszę na końcu tych wszystkich kolumn wpisać w jedną polecenie =[adres komórki]*2 i rozciągnąć to do dołu


(hindus) #6

Musisz pytać konkretnie, to dostaniesz konkretne rozwiązanie problemu :wink:
Da się to zrobić, ale być może XML nie będzie wyglądał tak “ładnie” jak poprzednio. Nie powinno to niczego zmienić, zresztą zawsze można go przeformatować N++ i jakimś pluginem do ładnej postaci.
Przede wszystkim, do operacji na Excelu musimy mieć dane sformatowane w ten sposób, że jedna dana = jedna linia.

Czyli u Ciebie cały <item_template>...</item_template> należy sprowadzić do pojedynczych linii. Nie powinno z tym być problemu:

  1. \n<weapon_stats zmiana na <weapon_stats
  2. \n<idian zmiana na <idian
  3. \n</item_template> (trzeba też uwzględnić spacje) zmiana na </item_template>
  4. Dodajemy tabulatury:
    a) na prawo od min_damage="
    b) po obu stronach od " max_damage="
    c) po lewej stronie od " attack_speed
  5. W ten sposób wyodrębnimy sobie kolumny liczbowe. Mnożenie jak w moim pierwszym poście i dalszy ciąg tak samo.

(sexy69bis) #7

Prosty skrypt VBS załatwi to w mgnieniu oka. :grinning:


(krystian3w) #8

Tak i mniej rozwali xml :blush:


(hindus) #9

Zapraszam do podzielenia się :slight_smile:


(sexy69bis) #10

To samo można zrobić notatnikiem AkelPad.

Co masz na myśli:
informację, czym to zrobić?
czy
napisanie skryptu.


(hindus) #11

Napisanie skryptu albo chociaż naprowadzenie autora (i osób które będą szukać podobnej informacji w przyszłości) w VBS rozwiązującego ten problem. Bo równie dobrze możesz też napisać - “Prosty program w Javie/C#/Pythonie załatwi to w mgnieniu oka” i też będziesz miał rację ale jaka z tego korzyść dla autora? :wink:


(sexy69bis) #12

Chyba te programy są płatne i posiadają kompilator.
Skrypt VBS może każdy (więc korzyść, oczywista) napisać notatnikiem,
bez żadnych zainstalowanych programów.

Daj ten plik gdzieś do ściągnięcia, to zrobię skrypt.


(krystian3w) #13

Poważnie… nie mówimy o kupnie prostej aplikacji w phyton / c# / java.

https://javastart.pl/static/darmowy-kurs-java/


(hindus) #14

Korzystanie z przytoczonych przeze mnie technologii jest w pełni darmowe, szczegółowo opisane i przystępne. Można tworzyć programy także w notatniku, nie wymagają żadnego IDE (chociaż jest to wygodne).
Oczywiście wymagają kompilatora (albo interpretera) tak samo jak VBS i w zasadzie każdy język programowania (nawet kod assemblera trzeba linkować), różnica jest taka, że ten do VBSa jest po prostu już zainstalowany na Windowsie.
Pliku nie mam, musiałby się wypowiedzieć autor tematu.


(sexy69bis) #15

VBS skrypt nie muszę kompilować do exe.
Jest plikiem wykonywalnym i zarazem gotowy do edycji.
Plik musi mieć rozszerzenie vbs.
Wystarczy na nim kliknąć i po sprawie.

W każdej chwili można go otworzyć notatnikiem
i zrobić poprawkę lub dostosować do nowego zadania.

Nic prostszego już chyba niema,
chyba, że wspomniany wcześnie edytor tekstu AkelPad.


(sexy69bis) #16

A można tym darmowym, skompilować plik do exe?


(krystian3w) #17

Tak.


(hindus) #18

Nie jest plikiem wykonywalnym. Jest skryptem. To, że się uruchamia po dwukrotnym kliknięciu wynika z tego samego faktu dla którego wykonują się pliki .cmd pod Windowsem - jest do nich przypisana aplikacja która je następnie interpretuje i wykonuje. Dlatego nie widzę różnicy poza tym, że VBS jest domyślnie skonfigurowany pod Windowsem. Da się to równie łatwo zrobić ze skryptami pythona.


(sexy69bis) #19

To w czym problem?


(krystian3w) #20

Niestety nie ma go w innej formie.