Poradziłem sobie z rozbiciem plików .ini na linie i złożeniem ponownie. To najważniejsza część - dostać się do każdej linii, edytować, zapisać i złożyć z niego nowy .ini (lub kilkadziesiąt nowych .ini) a następnie AYMaker złoży to wszystko po edycji.
Pomogła mi w tym instrukcja more +1 która przerzuca pierwszą linię do nowego pliku.
Wszystko idzie pięknie z wyjątkiem interpretacji liczb.
Chcę, żeby każdy numer zapisany był w formie trzycyfrowej i na tym dziś poległem.
Do tej pory wykorzystywałem taką regułę
set filecount=0
...
set /a filecount+=1
if !filecount! lss 100 set filecount=0!filecount!
if !filecount! lss 10 set filecount=0!filecount!
Było dobrze, dopóki nie spróbowalem przetworzyć 10 lub więcej plików,
gdy plik zawieral więcej niż 10 linii, czy w pliku było więcej niż 10 utworów. Licznik zerował się po 9.
Próbowalem różne warianty set /a (arytmetycznie) zamiast zwykłego set - to z kolei miał problem z utworzeniem pliku o danym numerze.
Początkowa wartość =001 zamiast =1 też nic albo niewiele daje.
Zmiana kolejnosci warunków IF nic nie daje, albo całkiem zmienia numer np na 00001
Jeszcze próba w ten sposób, aby po każdym IF skoczył do etykiety całkiem pomieszała kolejność, choć każda etykieta miała swoją nazwę.
if !filecount! lss 10 (set filecount=00!filecount! & goto :labelaa)
if !filecount! lss 100 (set filecount=0!filecount! & goto :labelaa)
:labelaa
Z kolei gdy pliki są numerowane 1, 2, 3 ... 10, 11, 100, to przetwarzane są w kolejności alfabetycznej, czyli 1, 10, 100, 11, 2, 3 (załącznik)
Gdy z tym się uporam, będzie można zabierać się za pisanie edytora i przedstawić testową wersję na forum. Na razie mam pause co kilka linii, aby sprawdzać co i kiedy tworzy.
Tak przy okazji, czy CMD obsługuje HEX? To byłoby idealne. Nie ma znaczenia jak są pliki ponumerowane, ważne żeby były kolejno.
Jeśli trzeba, to użyję SED, choć jeszcze nie dotarłem do jego składni i parametrów.
------------------------------------------------
Aplikacja Ayfile.exe nie chodzi, chyba że źle ją uruchamiam. Wrzucam do folderu plik .ay i startuję
Ayfile example.ay
Wrzucam plik .ini + .bin i tak samo.
Ayfile.exe example.ini
Nie wiem, co w ogóle ma robić. Rozkładać czy składać plik? Błąd w obu przypadkach jest podobny (w zalączniku 2).
Na razie pozostaję przy drobnych modyfikacjach oryginalnych źródeł w delphi.