av Danne J » 02 feb 2014, 17:03
Tack Janne, jag skickade dem en fråga om de fixar mina krav, nämligen att hälla alla foton oavsett vad de tagits med i en stor tratt och att de sen kommer ut sorterade i den ordning de togs. Alltså inte sorterade per kamera utan i strikt tidsordning vilket förstås förutsätter att klockan är korrekt inställd. Men det är en annan femma.
Ska bli intressant att se vad de svarar. Annars får jag väl behålla mitt lilla REXX-program vars kod egentligen består av 6 rader.
1. fråga om man vill fortsätta från föregående sekvensnr? eller ange själv?
2. öppna infilen (den med alla namnen på fotona som de ser ut i respektive kamera)
3. läs en post i taget
4. byt namn
5. logga namnbytet
6. när infilen tagit slut, notera nästa startnummer
Först i DOS dir*.jpg>>bilder.txt /b /od
Sen korrigera bilder.txt om det är nåt som hamnat i fel ordning av någon anledning.
Slutligen själva REXX'eriet som ser ut som följer: (vill man stoppa skriver man bara nånting annat än ok på frågan om man vill fortsätta)
say "Skriv 1 om du vill att programmet hämtar startnumret från NEWPICTURE.TXT";
say "eller 2 om du vill ange själv";
say;
pull svar;
if svar='1' then do;
newpicture=0;
do until lines(NEWPICTURE.TXT)=0;
Datapost1=linein(NEWPICTURE.TXT);
parse value Datapost1 with 1 notused 22 year 26 newpicture 30 notused2 53 sistaoriginal 61 notused3;
end;
say "Last original was "sistaoriginal;
say "New sequence number will be "year""newpicture".JPG";
say "All files will keep their file extention.";
end; else; say;
if svar='2' then do;
say "Skriv $rtalet (4 siffor)";
pull year;
say "Ange startnumret (4 siffror)";
pull newpicture;
say "Startnummer blir "year""newpicture;
end; else; say;
say ;
say "Skriv OK om du vill fortsätta.";
say;
pull svar2;
if svar2='OK' then do;
testblankrecord=' ';
dirindicator=' ';
do until lines(bilder.txt)=0;
datapost2=linein(bilder.txt);
parse value datapost2 with picturename '.' type;
'@rename 'picturename'.* 'year''newpicture'.*';
if picturename=' ' then do;
say "Det finns en blank post i BILDER.TXT Skip it, take next";
iterate;
end;
say picturename"."type "byter namn till" year""newpicture"."type;
call lineout renewlog.txt, picturename 'byter namn till 'year''newpicture'. Date 'date()', 'time();
newpicture=newpicture+1;
if newpicture='10000' then do;
call lineout newpicture.txt, 'Next start number is 'year'0000 and last original was 'picturename'. Run date 'date()', 'time();
say;
say "Hoppsan. Max antal bilder per år är 9999";
say "Programmet avslutar.";
exit;
end;
newpicture=right(newpicture,4,0);
end;
call lineout newpicture.txt, 'Next start number is 'year''newpicture' and last original was 'picturename'. Run date 'date()', 'time();
say;
say "Nästa startnummer blir " newpicture;
say;
end;
else;
say "OK not received. Program cancelled";
say;