Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batchdatei erfordert Dateinamen - Ausführen, Sortieren und Umbenennen Schleife

Frage Entwicklung Batch & Shell

Mitglied: flipmode85

flipmode85 (Level 1) - Jetzt verbinden

12.08.2010, aktualisiert 11:37 Uhr, 6277 Aufrufe, 19 Kommentare, 1 Danke

Hallo,

ich heiße Jürgen, bin 25 Jahre alt und beschäftige mich derzeit mit der Programmierung von Werkzeugmaschinen.
Hierzu benötige ich einige Hilfsmittel wie in diesem Falle eine *.bat welche eine Verschlüsselungsfolge ausführt
die Datei umbenennt und in den richtigen Ordner speichert.

Das ganze sollte mehr oder weniger "automatisch" ablaufen, sprich wird eine Datei in Verzeichnis C:/XYZ mit der Dateiendung *.XYZ abgespeichert sollte diese durch eine weitere *.bat-Datei Verschlüsselt werden. Die Verschlüsselung habe ich bereits selbst erstellt, bzw. auf vorhandenem aufgebaut. Die Datei crypt.bat führt eine CHG.exe Datei aus, welche die ASCII/ANSI Zeichen umwandelt. Ich bin mit BATCH noch Neu und habe mich ein paar Tage eingelesen und das erste Ergebnis ist die crypt.bat.

Der Ablauf sollte so aussehen:

Verzeichnis C:\XYZ | Stammverzeichnis
Verzeichnis C:\XYZ/DATA | Datenverzeichnis in welchen die Ursprunsdaten abgespeichert werden.
Verzeichnis C:\XYZ/DATA/TXT/ | Datenverzeichnis in welches die Originaldatei nach der Verschlüsselung verschoben wird.
Verzeichnis C:\XYZ/DATA/ORIGIN/ Datenverzeichnis für die Originaldatei

Die Dateiendung der zu Verschlüsselnden Dateien ist immer gleich *.XYZ, jedoch beinhaltet der Dateiname ein % als Vorzeichen ( %123.XYZ ) Das machte mir schon Probleme ;-(

Um eine Datei zu Verschlüsseln muss der Dateiname angefügt werden: Beispiel crypt.bat %123.XYZ

Wird eine solche Datei in den Ordner C: \XYZ/DATA abgespeichert, sollte die crypt.bat Datei diese automatisch Verschlüsseln und anschließend in den Ordner C:\XYZ/DATA/TXT/ verschieben. Meine Versuche sind leider Fehlgeschlagen. Die CHG.exe Datei überschreibt die zu Verschlüsselnde Datei automatisch, daher wäre es Sinnvoll vor der Verschlüsselung die Originaldatei in den Ordner C:\XYZ/DATA/ORIGIN/ zu kopieren.

Meine Frage hierzu: Ist es besser eine weitere *.bat Datei anzulegen in welcher meine "Wünsche" abgelegt werden, oder kann dies direkt in die crypt.bat mit aufgenommen werden? Ist das ganze üerhaupt machbar?


01.
@echo off 
02.
cls 
03.
Rem Verschlüsseln 
04.
CHG -i %1 -s [15] -r [15] 
05.
CHG -i %1 -s [19] -r [19] 
06.
CHG -i %1 -s [32] -r [32] 
07.
CHG -i %1 -s [35] -r [163] 
08.
CHG -i %1 -s [37] -r [165] 
09.
CHG -i %1 -s [40] -r [40] 
10.
CHG -i %1 -s [41] -r [169] 
11.
CHG -i %1 -s [44] -r [172] 
12.
CHG -i %1 -s [45] -r [45] 
13.
CHG -i %1 -s [49] -r [177] 
14.
CHG -i %1 -s [50] -r [178] 
15.
CHG -i %1 -s [51] -r [51] 
16.
CHG -i %1 -s [52] -r [180] 
17.
CHG -i %1 -s [53] -r [53] 
18.
CHG -i %1 -s [54] -r [54] 
19.
CHG -i %1 -s [55] -r [183] 
20.
CHG -i %1 -s [56] -r [184] 
21.
CHG -i %1 -s [57] -r [57] 
22.
CHG -i %1 -s [60] -r [60] 
23.
CHG -i %1 -s [61] -r [189] 
24.
CHG -i %1 -s [62] -r [190] 
25.
CHG -i %1 -s [65] -r [65] 
26.
CHG -i %1 -s [66] -r [66] 
27.
CHG -i %1 -s [67] -r [195] 
28.
CHG -i %1 -s [68] -r [68] 
29.
CHG -i %1 -s [69] -r [197] 
30.
CHG -i %1 -s [70] -r [198] 
31.
CHG -i %1 -s [71] -r [71] 
32.
CHG -i %1 -s [72] -r [72] 
33.
CHG -i %1 -s [73] -r [201] 
34.
CHG -i %1 -s [74] -r [202] 
35.
CHG -i %1 -s [76] -r [204] 
36.
CHG -i %1 -s [77] -r [77] 
37.
CHG -i %1 -s [78] -r [78] 
38.
CHG -i %1 -s [79] -r [207] 
39.
CHG -i %1 -s [80] -r [80] 
40.
CHG -i %1 -s [81] -r [209] 
41.
CHG -i %1 -s [82] -r [210] 
42.
CHG -i %1 -s [83] -r [83] 
43.
CHG -i %1 -s [84] -r [212] 
44.
CHG -i %1 -s [85] -r [85] 
45.
CHG -i %1 -s [86] -r [86] 
46.
CHG -i %1 -s [87] -r [215] 
47.
CHG -i %1 -s [88] -r [216] 
48.
CHG -i %1 -s [89] -r [89] 
49.
CHG -i %1 -s [90] -r [90] 
50.
cls 
51.
echo --> Datei erfolgreich Konvertiert
Mitglied: 60730
12.08.2010 um 12:02 Uhr
Salü,

anbei ein erster ungetesteter aus dem Bauch geschriebener Versuch

01.
:start 
02.
Rem Betapahse ungetestet 
03.
Rem @echo off 
04.
 
05.
if not exist C:\XYZ\DATA\*.xyz goto end 
06.
for /f %%a in ('dir /b C:\XYZ\DATA\*.xyz') do ( 
07.
		copy C:\XYZ\DATA\%%a C:\XYZ/DATA\ORIGIN\ 
08.
		call :crypt  %%a 
09.
		move C:\XYZ\DATA\%%a C:\XYZ/DATA\TXT\ 
10.
11.
goto eof 
12.
 
13.
:crypt 
14.
CHG -i %1 -s [15] -r [15] 
15.
CHG -i %1 -s [19] -r [19] 
16.
CHG -i %1 -s [32] -r [32] 
17.
CHG -i %1 -s [35] -r [163] 
18.
CHG -i %1 -s [37] -r [165] 
19.
CHG -i %1 -s [40] -r [40] 
20.
CHG -i %1 -s [41] -r [169] 
21.
CHG -i %1 -s [44] -r [172] 
22.
CHG -i %1 -s [45] -r [45] 
23.
CHG -i %1 -s [49] -r [177] 
24.
CHG -i %1 -s [50] -r [178] 
25.
CHG -i %1 -s [51] -r [51] 
26.
CHG -i %1 -s [52] -r [180] 
27.
CHG -i %1 -s [53] -r [53] 
28.
CHG -i %1 -s [54] -r [54] 
29.
CHG -i %1 -s [55] -r [183] 
30.
CHG -i %1 -s [56] -r [184] 
31.
CHG -i %1 -s [57] -r [57] 
32.
CHG -i %1 -s [60] -r [60] 
33.
CHG -i %1 -s [61] -r [189] 
34.
CHG -i %1 -s [62] -r [190] 
35.
CHG -i %1 -s [65] -r [65] 
36.
CHG -i %1 -s [66] -r [66] 
37.
CHG -i %1 -s [67] -r [195] 
38.
CHG -i %1 -s [68] -r [68] 
39.
CHG -i %1 -s [69] -r [197] 
40.
CHG -i %1 -s [70] -r [198] 
41.
CHG -i %1 -s [71] -r [71] 
42.
CHG -i %1 -s [72] -r [72] 
43.
CHG -i %1 -s [73] -r [201] 
44.
CHG -i %1 -s [74] -r [202] 
45.
CHG -i %1 -s [76] -r [204] 
46.
CHG -i %1 -s [77] -r [77] 
47.
CHG -i %1 -s [78] -r [78] 
48.
CHG -i %1 -s [79] -r [207] 
49.
CHG -i %1 -s [80] -r [80] 
50.
CHG -i %1 -s [81] -r [209] 
51.
CHG -i %1 -s [82] -r [210] 
52.
CHG -i %1 -s [83] -r [83] 
53.
CHG -i %1 -s [84] -r [212] 
54.
CHG -i %1 -s [85] -r [85] 
55.
CHG -i %1 -s [86] -r [86] 
56.
CHG -i %1 -s [87] -r [215] 
57.
CHG -i %1 -s [88] -r [216] 
58.
CHG -i %1 -s [89] -r [89] 
59.
CHG -i %1 -s [90] -r [90] 
60.
goto eof 
61.
 
62.
:end 
63.
ping localhost -n 10>nul 
64.
goto start

Gruß
Bitte warten ..
Mitglied: flipmode85
12.08.2010 um 13:18 Uhr
Danke, das klappt soweit. Lediglich die Verschlüsselung wird nicht ausgeführt, da der Dateiname nicht erkannt wird. Es fehlen bei der Ausabe das % und das erste Zeichen im Dateinamen. Evtl. kann man es unabhängig von Dateinamen ob mit % oder ohne erledigen?
Auch schließt sich das Fenster nach dem Vorgang, ist es möglich den Vorgang aufrecht zu erhalten und solange zu Verweilen bis eine neue Datei im Ordner abgelegt wird welche erneut abgearbeitet wird. Somit würde diese *.bat mit Windows starten und im Hintergrund laufen.

01.
:start 
02.
@echo off 
03.
if not exist C:\NC_NUM\DATA\*.NUM goto end 
04.
for /f %%a in ('dir /b C:\NC_NUM\DATA\*.NUM') do ( 
05.
		copy C:\NC_NUM\DATA\%%a C:\NC_NUM\DATA\ORIGIN\ 
06.
		call :crypt  %%a 
07.
		move C:\NC_NUM\DATA\%%a C:\NC_NUM\DATA\NC\ 
08.
09.
goto eof 
10.
 
11.
:crypt 
12.
CHG -i %1 -s [15] -r [15] 
13.
CHG -i %1 -s [19] -r [19] 
14.
CHG -i %1 -s [32] -r [32] 
15.
CHG -i %1 -s [35] -r [163] 
16.
CHG -i %1 -s [37] -r [165] 
17.
CHG -i %1 -s [40] -r [40] 
18.
CHG -i %1 -s [41] -r [169] 
19.
CHG -i %1 -s [44] -r [172] 
20.
CHG -i %1 -s [45] -r [45] 
21.
CHG -i %1 -s [49] -r [177] 
22.
CHG -i %1 -s [50] -r [178] 
23.
CHG -i %1 -s [51] -r [51] 
24.
CHG -i %1 -s [52] -r [180] 
25.
CHG -i %1 -s [53] -r [53] 
26.
CHG -i %1 -s [54] -r [54] 
27.
CHG -i %1 -s [55] -r [183] 
28.
CHG -i %1 -s [56] -r [184] 
29.
CHG -i %1 -s [57] -r [57] 
30.
CHG -i %1 -s [60] -r [60] 
31.
CHG -i %1 -s [61] -r [189] 
32.
CHG -i %1 -s [62] -r [190] 
33.
CHG -i %1 -s [65] -r [65] 
34.
CHG -i %1 -s [66] -r [66] 
35.
CHG -i %1 -s [67] -r [195] 
36.
CHG -i %1 -s [68] -r [68] 
37.
CHG -i %1 -s [69] -r [197] 
38.
CHG -i %1 -s [70] -r [198] 
39.
CHG -i %1 -s [71] -r [71] 
40.
CHG -i %1 -s [72] -r [72] 
41.
CHG -i %1 -s [73] -r [201] 
42.
CHG -i %1 -s [74] -r [202] 
43.
CHG -i %1 -s [76] -r [204] 
44.
CHG -i %1 -s [77] -r [77] 
45.
CHG -i %1 -s [78] -r [78] 
46.
CHG -i %1 -s [79] -r [207] 
47.
CHG -i %1 -s [80] -r [80] 
48.
CHG -i %1 -s [81] -r [209] 
49.
CHG -i %1 -s [82] -r [210] 
50.
CHG -i %1 -s [83] -r [83] 
51.
CHG -i %1 -s [84] -r [212] 
52.
CHG -i %1 -s [85] -r [85] 
53.
CHG -i %1 -s [86] -r [86] 
54.
CHG -i %1 -s [87] -r [215] 
55.
CHG -i %1 -s [88] -r [216] 
56.
CHG -i %1 -s [89] -r [89] 
57.
CHG -i %1 -s [90] -r [90] 
58.
goto eof 
59.
 
60.
:end 
61.
ping localhost -n 10>nul 
62.
goto start
Bitte warten ..
Mitglied: icsat
12.08.2010 um 14:12 Uhr
Hallo Jürgen,

imho funktioniert die Übergabe nicht wenn ein "%" im Dateinamen enthalten ist nicht. Ich meine es gibt dafür auch keine mir bekannte Lösung.

Du kannst aber in der FOR-Schleife vor dem CALL einfach ein
01.
set "datei=%%a"
verwenden.

Den CALL dann ohne Übergabeparameter und in der :crypt Routine statt %1 einfach %datei% verwenden.

Schreibst Du hinter der FOR Schleife statt "GOTO eof" einfach "GOTO end" schleift das Ding ewig. Timo ist bestimmt davon ausgegangen das crypt.bat soll aus einem anderen Job heraus aufgerufen werden und sich nach getaner Arnbeit beenden.

Gruß icsat
Bitte warten ..
Mitglied: flipmode85
12.08.2010 um 14:41 Uhr
Danke - das hilft mir schonmal weiter.

01.
@echo off 
02.
 
03.
if not exist C:\NC_NUM\DATA\*.NUM goto end 
04.
for /f %%a in ('dir /b C:\NC_NUM\DATA\*.NUM') do ( 
05.
		set "datei=%%a" 
06.
		copy C:\NC_NUM\DATA\%datei% C:\NC_NUM\DATA\ORIGIN\ 
07.
		call :crypt 
08.
		move C:\NC_NUM\DATA\%datei% C:\NC_NUM\DATA\NC\ 
09.
)
Ist das so korrekt? Es wird nun als Dateiname %a ausgegeben, ich hab da wohl noch einen Fehler drin?
Bitte warten ..
Mitglied: icsat
12.08.2010 um 14:47 Uhr
hab mich wohl nicht deutlich genug ausgedrückt, sorry:

01.
for /f %%a in ('dir /b C:\NC_NUM\DATA\*.NUM') do (  
02.
		copy C:\NC_NUM\DATA\%%a C:\NC_NUM\DATA\ORIGIN\  
03.
                set "datei=%%a" 
04.
		call :crypt  
05.
		move C:\NC_NUM\DATA\%%a C:\NC_NUM\DATA\NC\  
06.
) 
Nachtrag:
Hast Du eben noch was geändert? Das sah doch gerade noch anders aus?

Wenn Du DATEI in der FOR-Schleife verwenden willst muss Du !DATEI! statt %DATEI% verwenden.
Dazu ist es allerdings erforderlich zu Beginn des Batch ein
01.
setlocal enabledelayedexpansion 
zu verwenden.
Bitte warten ..
Mitglied: flipmode85
12.08.2010 um 14:54 Uhr
Ich denke, ich hab es eher nicht Verstanden .
Danke erstmal - hab es abgeändert der Zugriff scheint gelungen. Allerdings erhalte ich nun eine Fehlermeldng:
error: couldn´t find any file matching file name %100.NUM

Die Datei %100.NUM ist vorhanden und im Ordner C:\NC_NUM\DATA abgelegt.
Bitte warten ..
Mitglied: icsat
12.08.2010 um 15:00 Uhr
Du setzt in Datei ja auch nur den Dateinamen.

01.
set "datei=C:\NC_NUM\DATA\%%a"
Bitte warten ..
Mitglied: flipmode85
12.08.2010 um 15:26 Uhr
SUPER DANKE!

ich hab es nochmal abgeändert, die Endlosschleife verhindert wohl das:
01.
move C:\NC_NUM\DATA\%%a C:\NC_NUM\DATA\NC\  


die Datei verschoben wird. Ein weiteres Problem ist es, das in der Endlosschleife die crypt.bat aufgerufen wird, welche aber Fehler ausgibt, sofern keine Datei im Ordner C:\NC_NUM\DATA\ vorhanden ist. Auch werden Dateinamen mit mehr 4 Stellen nicht erkannt. Ist aber alles nicht weiter tragisch, es klappt besser als ich es mir vorgesellt hatte. Vielen Dank an icsat und TIMO


Hier nochmal der Code:

01.
:start 
02.
@echo off 
03.
for /f %%a in ('dir /b C:\NC_NUM\DATA\GCODE\*.NUM') do (  
04.
	copy C:\NC_NUM\DATA\GCODE\%%a C:\NC_NUM\DATA\ORIGIN\  
05.
		set "datei=C:\NC_NUM\DATA\GCODE\%%a" 
06.
			call :crypt  
07.
				move C:\NC_NUM\DATA\GCODE\%%a C:\NC_NUM\DATA\NUM\  
08.
)  
09.
goto eof  
10.
 
11.
:crypt 
12.
CHG -i %datei% -s [15] -r [15] 
13.
CHG -i %datei% -s [19] -r [19] 
14.
CHG -i %datei% -s [32] -r [32] 
15.
CHG -i %datei% -s [35] -r [163] 
16.
CHG -i %datei% -s [37] -r [165] 
17.
CHG -i %datei% -s [40] -r [40] 
18.
CHG -i %datei% -s [41] -r [169] 
19.
CHG -i %datei% -s [44] -r [172] 
20.
CHG -i %datei% -s [45] -r [45] 
21.
CHG -i %datei% -s [49] -r [177] 
22.
CHG -i %datei% -s [50] -r [178] 
23.
CHG -i %datei% -s [51] -r [51] 
24.
CHG -i %datei% -s [52] -r [180] 
25.
CHG -i %datei% -s [53] -r [53] 
26.
CHG -i %datei% -s [54] -r [54] 
27.
CHG -i %datei% -s [55] -r [183] 
28.
CHG -i %datei% -s [56] -r [184] 
29.
CHG -i %datei% -s [57] -r [57] 
30.
CHG -i %datei% -s [60] -r [60] 
31.
CHG -i %datei% -s [61] -r [189] 
32.
CHG -i %datei% -s [62] -r [190] 
33.
CHG -i %datei% -s [65] -r [65] 
34.
CHG -i %datei% -s [66] -r [66] 
35.
CHG -i %datei% -s [67] -r [195] 
36.
CHG -i %datei% -s [68] -r [68] 
37.
CHG -i %datei% -s [69] -r [197] 
38.
CHG -i %datei% -s [70] -r [198] 
39.
CHG -i %datei% -s [71] -r [71] 
40.
CHG -i %datei% -s [72] -r [72] 
41.
CHG -i %datei% -s [73] -r [201] 
42.
CHG -i %datei% -s [74] -r [202] 
43.
CHG -i %datei% -s [76] -r [204] 
44.
CHG -i %datei% -s [77] -r [77] 
45.
CHG -i %datei% -s [78] -r [78] 
46.
CHG -i %datei% -s [79] -r [207] 
47.
CHG -i %datei% -s [80] -r [80] 
48.
CHG -i %datei% -s [81] -r [209] 
49.
CHG -i %datei% -s [82] -r [210] 
50.
CHG -i %datei% -s [83] -r [83] 
51.
CHG -i %datei% -s [84] -r [212] 
52.
CHG -i %datei% -s [85] -r [85] 
53.
CHG -i %datei% -s [86] -r [86] 
54.
CHG -i %datei% -s [87] -r [215] 
55.
CHG -i %datei% -s [88] -r [216] 
56.
CHG -i %datei% -s [89] -r [89] 
57.
CHG -i %datei% -s [90] -r [90] 
58.
cls 
59.
echo Fertig 
60.
goto eof 
61.
:end 
62.
ping localhost -n 10>nul 
63.
goto start
Bitte warten ..
Mitglied: icsat
12.08.2010 um 17:12 Uhr
Helfen doch gerne

Warum der move nicht funktionieren sollte und jetzt nach Änderung der Pfade funktioniert erschließt sich mir allerdings so spontan nicht.
Auch Deine Aussage zu den 4 Zeichen im Dateinamen ist für mich nicht schlüssig.

Dafür würde es helfen die beiden
01.
goto eof
durch
01.
goto :eof
zu ersetzen. Dann sollte auch die Fehlermedung verschwinden.

Den Part ab Zeile 61 kannst Du übrigens löschen, da der nun nicht mehr angesprungen wird.
Bitte warten ..
Mitglied: flipmode85
16.08.2010 um 00:14 Uhr
Danke, das funktioniert nun - und sogar sehr gut!


Leider kommt aber schon das nächste Problem. Dies sieht wie folgt aus.

Die Datei welche von einem Programm ausgegeben wird, welches ich nicht ändern kann ( Verschlüsselte *.exe-Datei ) gibt in dieser Datei einen Wert aus, welcher mit einem weiteren Zahlenwert addiert werden müsste.

Die Datei ist wie folgt aufgebaut:
[SZ] = Wert um welcher der WERT "Z" addiert werden soll. Dieser Wert wird in die zu verändernde Datei geschrieben.

X 1234.00 Y1234.00 Z -1234.00

Hier sollte der Wert "Z-1234.00" um den Zahlenwert [SZ], angenommen 10.00 addiert werden. Bei dem angegebenen Wert handelt es sich um einen negativen Wert.
Das Ergebnis sollte anschließend so aussehen: Z1244.00 Die zwei Nachkommastellen werden benötigt, das Trennzeichen ist jedoch kein Komma sondern ein PUNKT!

Soweit ich das aus einigen Beispielen hier entnehmen konnte, müsste man wohl mit Variablen arbeiten? Die Schwierigkeit besteht darin, das es in der Textdatei auch Werte gibt welche gleich Formatiert sind, etwa "Z 123.00" und nicht verändert werden sollen. Die Anzahl der Zeilen welche verändert werden müssen variiert. Die Datei welche verändert werden sollte, kann vor den Zahlenwerten andere Zeichen ausgeben, etwa eine Variable - damit erkennbar wird was verändert werden sollte und was nicht.
Idealerweise sollte der Wert [SZ] nach dem addieren der Z-Werte aus der Datei gelöscht werden. Das ganze muss natürlich vor der Verschlüsselung geschehen.

Auch hier schlugen meine ersten Versuche fehl, bzw. total daneben ;-(.

Ist das überhaupt möglich?

Grüße

Jürgen
Bitte warten ..
Mitglied: icsat
16.08.2010 um 07:58 Uhr
Hallo Jürgen,

Zitat von flipmode85:
Ist das überhaupt möglich?
Es gibt nur sehr wenige Dinge, die nicht möglich sind.

Zitat von flipmode85:
X 1234.00 Y1234.00 Z -1234.00
Ich schließe daraus, dass zwischen Buchstaben und Zahlen mal eine SPACE steht und mal nicht. Richtig?

Zitat von flipmode85:
Hier sollte der Wert "Z-1234.00" um den Zahlenwert [SZ], angenommen 10.00 addiert werden. Bei dem angegebenen Wert
Oben war zwischen "Z" und "-" noch ein SPACE. Was den nun?

Zitat von flipmode85:
Das Ergebnis sollte anschließend so aussehen: Z1244.00 Die zwei Nachkommastellen werden benötigt, das Trennzeichen ist
Im modifizierten Ergebnis soll kein SPACE stehen?

Zitat von flipmode85:
besteht darin, das es in der Textdatei auch Werte gibt welche gleich Formatiert sind, etwa "Z 123.00" und nicht
Wenn nichts geändert wird soll ein SPACE erhalten bleiben?

Enthalten die Datensätze in der Datei immer ausschließlich die Werte X, Y und Z?
Sollen nur Ganzzahlen addiert werden oder evtl. Zahlen mit Nachkommastellen ungleich "00"?

Ich würde mich an Deiner Stelle einmal mit dem FOR auseinander setzen.
01.
FOR /?
Habe gerade keine Windows Kiste griffbereit, mir würde aber etwas in diese Richtung "for /f tokens delims" vorschweben.

Gruß icsat
Bitte warten ..
Mitglied: flipmode85
16.08.2010 um 08:36 Uhr
Guten Morgen,

danke für die schnelle antwort!!
Die Werte müssen an den Buchstaben anhängen, dazwischen sollte kein Leerzeichen sein. Der Text wird wie unten stehen angegeben und so Formatiert. Der Wert ZL112 darf nicht verändert werden!

01.
N210	#851	(ISO)		G90		XY	ZL112					 
02.
N230	#851	(ISO)		G1		X98.73		Y98.85		Z-2.50					 
03.
N240	#851	(ISO)		G1		X98.73		Y100.39		Z-2.50					 
04.
N250	#851	(ISO)		G1		X102.28		Y100.39		Z-2.50					 
05.
N260	#851	(ISO)		G1		X102.28		Y98.85		Z-2.50					 
06.
N270	#851	(ISO)		G1		X98.73		Y98.85		Z-2.50					
Hierbei kann die Zeile jedoch auch variieren und wie folgt aussehen.
01.
 N230	#851	(ISO)		G1		Z-2.50				

Der Header der Datei sieht wie folgt aus:
01.
%101.0		 
02.
N10	#2000	(FRAESER:START-POS.)	 
03.
#	L140=	0.0	L141=	0.0	L142=	-10	L143=	1	L144=	102	L145=	12000	L146=	1524	L147=	1	L148=	0	 
04.
#	G77H9956	
Hier kann der Parameter L142= -10 verwendet werden, dieser muss nicht gelöscht werden, sofern dieser weiterhin im gleichen Format in die Datei geschrieben werden kann.

Es wäre es von Vorteil das eine weitere Datei als *.txt mit gesamten Inhalt und den geänderten Werten erstellt wird und diese in einem weiteren Unterordner abgelegt wird, damit ich das Ergebnis auch kontrollieren kann. Es wird wohl Zeit, mir ein richtiges Buch zu kaufen und mich viel mehr mit dieser Thematik beschäftigen muss.

EDIT: Auch die Nachkommastellen sollten sollten in das Ergebnis eingerechnet werden.


Mein Lösungsansatz:

01.
:start 
02.
@echo off 
03.
for /f %%a in ('dir /b C:\NC_NUM\DATA\GCODE\*.NUM') do (  
04.
REM Create Variables 
05.
set /a LineNo=0 
06.
set /a Summe=0 
07.
for /f "usebackq skip=1 tokens=2" %%i in ('dir /b C:\NC_NUM\DATA\GCODE\*.NUM') do set /a Summe+=%%i 
08.
>C:\NC_NUM\DATA\TRANS\%%a echo %Summe% 
09.
REM Get copy in folders 
10.
copy C:\NC_NUM\DATA\GCODE\%%a C:\NC_NUM\DATA\ORIGIN\  
11.
set "datei=C:\NC_NUM\DATA\GCODE\%%a" 
12.
call :crypt  
13.
move C:\NC_NUM\DATA\GCODE\%%a C:\NC_NUM\DATA\NUM\  
14.
15.
goto :eof 
Bitte warten ..
Mitglied: flipmode85
16.08.2010 um 15:55 Uhr
Das scheint so nicht zu funktionieren, der Lösungansatz ist evtl. richtig, allerdings mache ich wohl einen Fehler bei der Benennung der Variablen?
Bitte warten ..
Mitglied: icsat
17.08.2010 um 20:52 Uhr
Sorry, dass ich erst jetzt antworten kann. Die Kombination von Zeit und Windowskiste war in den letzten Tagen leider nicht wirklich gegeben.

Das mit dem Buch würde ich mir schenken, für die wenigen Befehle lohnt sich dass imho nicht. Da lernt man im Internet und insbesondere hier viel besser. Es gibt zu jedem Problem unzählige Beispiele. Ich lege Dir da für den Anfang einfach mal Biber's Workshops an Herz.
Workshop Batch for Runaways - Part I - Beispiel FindLongPath.Bat Bedenklich lange Pfade finden
Workshop Batch for Runaways - Part II - Ein bisschen Handwerkszeug
Workshop Batch for Runaways - Part III - Datums- und Zeitvariablen im Batch
Außerdem findest Du unter Anleitungen auch noch diverse andere Dinge von Intresse.

Nun aber zu Deinen Problem:
  1. Mir ist noch nicht klar woher der Wert ([SZ]) für die Addition genommen werden soll. Habe ich in Deinem Beispiel nicht gefunden, daher habe ich den in meinen Skript erst mal als Fix angenommen.
  2. Was bedeutet "Hier kann der Parameter L142= -10 verwendet werden, ..."? Soll auch auf die 10 der Fixe Wert addiert werden oder soll die 10 als Wert für die Addition genommen werden?
  3. Minus Zeichen habe ich vollkommen ignoriert und bin immer von absoluten Werten ausgegangen.
  4. Ein Problem ist, dass Du im Batch nur mit Ganzzahlen rechnen kannst. Daher habe ich die Zahl in Vorkomma und Nachkommestellen zerlegt.
  5. Ich bin davon ausgegangen, dass eine Zeile maximal ein "Z" enthält.
  6. Weiter bin ich davon ausgegangen, dass eine "ZL"-Zeile nicht modifiziert wird und bei allen anderen "Z"-Zeilen dem "Z" immer der zu modifizierende Wert folgt.

Leider sind das jede Menge Annahmen.

Folgendes habe ich als Eingeabe verwendet:
01.
%101.0		 
02.
N10	#2000	(FRAESER:START-POS.)	 
03.
#	L140=	0.0	L141=	0.0	L142=	-10	L143=	1	L144=	102	L145=	12000	L146=	1524	L147=	1	L148=	0	 
04.
#	G77H9956	 
05.
N210	#851	(ISO)		G90		XY	ZL112					 
06.
N230	#851	(ISO)		G1		X98.73		Y98.85		Z-2.50					 
07.
N240	#851	(ISO)		G1		X98.73		Y100.39		Z-2.50					 
08.
N250	#851	(ISO)		G1		X102.28		Y100.39		Z-2.50					 
09.
N260	#851	(ISO)		G1		X102.28		Y98.85		Z-2.50					 
10.
N270	#851	(ISO)		G1		X98.73		Y98.85		Z-2.50					 
11.
N230	#851	(ISO)		G1		Z-2.50				
Und bei der Addition von 3.99 habe ich folgende Ausgabe erhalten:
01.
%101.0		 
02.
N10	#2000	(FRAESER:START-POS.)	 
03.
#	L140=	0.0	L141=	0.0	L142=	-10	L143=	1	L144=	102	L145=	12000	L146=	1524	L147=	1	L148=	0	 
04.
#	G77H9956	 
05.
N210	#851	(ISO)		G90		XY	ZL112					 
06.
N230	#851	(ISO)		G1		X98.73		Y98.85		Z6.49				 
07.
N240	#851	(ISO)		G1		X98.73		Y100.39		Z6.49				 
08.
N250	#851	(ISO)		G1		X102.28		Y100.39		Z6.49				 
09.
N260	#851	(ISO)		G1		X102.28		Y98.85		Z6.49				 
10.
N270	#851	(ISO)		G1		X98.73		Y98.85		Z6.49				 
11.
N230	#851	(ISO)		G1		Z6.49				
Sollte das jetzt nicht Deinen Vorstellungen entsprechen poste doch bitte mal ein Vorher / Nacher. Evtl. mit etwas mehr und möglichst variantenreicheren Zeilen.

Dein modifiziertes Skript:
01.
:start 
02.
:@echo off 
03.
setlocal EnableDelayedExpansion 
04.
set "gcode=C:\NC_NUM\DATA\GCODE" 
05.
set "origin=C:\NC_NUM\DATA\ORIGIN" 
06.
set "add=C:\NC_NUM\DATA\ADD" 
07.
set "num=C:\NC_NUM\DATA\NUM" 
08.
 
09.
for /f %%a in ('dir /b %GCODE%\*.NUM') do (  
10.
	REM Get copy in folders 
11.
	move %GCODE%\%%a %ORIGIN%\ 
12.
	set "eingabe=%ORIGIN%\%%a" 
13.
        set "ausgabe=%GCODE%\%%a 
14.
	call :add 
15.
        copy !AUSGABE! %ADD%\ 
16.
	call :crypt  
17.
	move !AUSGABE! %NUM%\ 
18.
19.
 
20.
:ende 
21.
endlocal 
22.
goto :eof  
23.
 
24.
 
25.
 
26.
:add 
27.
for /f "delims=Z tokens=1,2" %%i in (%EINGABE%) do ( 
28.
    set addvk=3 
29.
    set addnk=99 
30.
	set "zteil=%%j" 
31.
	if "!ZTEIL!"=="" ( 
32.
		echo %%i>>%AUSGABE% 
33.
	) else ( 
34.
		if "!ZTEIL:~0,1!"=="L" ( 
35.
			echo %%iZ%%j>>%AUSGABE% 
36.
		) else ( 
37.
			for /f "tokens=1,2,3 delims=-.	" %%k in ("!ZTEIL!") do ( 
38.
				set /a vk=%%k+!ADDVK! 
39.
				set /a nk=%%l+!ADDNK! 
40.
				if !NK! GEQ 100 set /a vk+=1 && set /a nk-=100 
41.
				echo %%iZ!VK!.!NK!				%%m>>%AUSGABE% 
42.
43.
44.
45.
46.
 
47.
goto :eof 
48.
 
49.
 
50.
 
51.
:crypt 
52.
CHG -i %AUSGABE% -s [15] -r [15] 
53.
CHG -i %AUSGABE% -s [19] -r [19] 
54.
CHG -i %AUSGABE% -s [32] -r [32] 
55.
CHG -i %AUSGABE% -s [35] -r [163] 
56.
CHG -i %AUSGABE% -s [37] -r [165] 
57.
CHG -i %AUSGABE% -s [40] -r [40] 
58.
CHG -i %AUSGABE% -s [41] -r [169] 
59.
CHG -i %AUSGABE% -s [44] -r [172] 
60.
CHG -i %AUSGABE% -s [45] -r [45] 
61.
CHG -i %AUSGABE% -s [49] -r [177] 
62.
CHG -i %AUSGABE% -s [50] -r [178] 
63.
CHG -i %AUSGABE% -s [51] -r [51] 
64.
CHG -i %AUSGABE% -s [52] -r [180] 
65.
CHG -i %AUSGABE% -s [53] -r [53] 
66.
CHG -i %AUSGABE% -s [54] -r [54] 
67.
CHG -i %AUSGABE% -s [55] -r [183] 
68.
CHG -i %AUSGABE% -s [56] -r [184] 
69.
CHG -i %AUSGABE% -s [57] -r [57] 
70.
CHG -i %AUSGABE% -s [60] -r [60] 
71.
CHG -i %AUSGABE% -s [61] -r [189] 
72.
CHG -i %AUSGABE% -s [62] -r [190] 
73.
CHG -i %AUSGABE% -s [65] -r [65] 
74.
CHG -i %AUSGABE% -s [66] -r [66] 
75.
CHG -i %AUSGABE% -s [67] -r [195] 
76.
CHG -i %AUSGABE% -s [68] -r [68] 
77.
CHG -i %AUSGABE% -s [69] -r [197] 
78.
CHG -i %AUSGABE% -s [70] -r [198] 
79.
CHG -i %AUSGABE% -s [71] -r [71] 
80.
CHG -i %AUSGABE% -s [72] -r [72] 
81.
CHG -i %AUSGABE% -s [73] -r [201] 
82.
CHG -i %AUSGABE% -s [74] -r [202] 
83.
CHG -i %AUSGABE% -s [76] -r [204] 
84.
CHG -i %AUSGABE% -s [77] -r [77] 
85.
CHG -i %AUSGABE% -s [78] -r [78] 
86.
CHG -i %AUSGABE% -s [79] -r [207] 
87.
CHG -i %AUSGABE% -s [80] -r [80] 
88.
CHG -i %AUSGABE% -s [81] -r [209] 
89.
CHG -i %AUSGABE% -s [82] -r [210] 
90.
CHG -i %AUSGABE% -s [83] -r [83] 
91.
CHG -i %AUSGABE% -s [84] -r [212] 
92.
CHG -i %AUSGABE% -s [85] -r [85] 
93.
CHG -i %AUSGABE% -s [86] -r [86] 
94.
CHG -i %AUSGABE% -s [87] -r [215] 
95.
CHG -i %AUSGABE% -s [88] -r [216] 
96.
CHG -i %AUSGABE% -s [89] -r [89] 
97.
CHG -i %AUSGABE% -s [90] -r [90] 
98.
 
99.
goto :eof 
100.
 
Ich hoffe ich habe mich jetzt bei den Verzeichnissen nicht vertan. Ach so, ich habe noch ein Verzeichnis ADD angelegt, in welchem die Datei nach Modifikation und vor Verschlüsselung gesichert wird.

Ich bin mir jetzt nicht sicher, welche Datenmengen Du verarbeiten willst. Sollte die Dateien umfangreicher sein, könnte es einen zeitlichen Vorteil bringen, das ganze z.B. mit Hilfe von VBS zu lösen.
Ich hatte einmal täglich mehrere Dateien, die insgesamt wenige Gigabyte Daten enthielten und musse die erste Stelle von jedem Datensatz von 1 auf 2 ändern. Insgesamt so ca. 3,5 Mio Datensätze.
Mein Batch lag da bei etwa 30 Minuten wenn ich mich noch richtig erinnere, mein VBS bei unter einer Minute Verarbeitungszeit.

Gruss icsat
Bitte warten ..
Mitglied: flipmode85
18.08.2010 um 08:53 Uhr
Guten Morgen,

danke für Deine Hilfe - das zeit mir schon sehr deutlich was alles mit BATCH möglich ist.
Im Anhang ist eine weitere etwas größere Datei, die häufigkeit der Z-Werte ist sehr verschieden.

1 Mir ist noch nicht klar woher der Wert ([SZ]) für die Addition genommen werden soll. Habe ich in Deinem Beispiel nicht gefunden, daher habe ich den in meinen Skript erst mal als Fix angenommen.

Es wurde nun noch der Header der Datei angefügt, damit ein 1:1 Vergleich möglich ist. Der Wert der der zum Z-Wert addiert werden soll, lässt sich in Zeile 18 finden L142= -10 dieser kann sich verändern
Ich habe wohl noch eine wichtige Sache nicht erklärt, das muss ich vergessen haben. Wie im Beispiel zu sehen ist hat Parameter eine größe von L142 = -10.

Originaldatei:
01.
N230	#851	(ISO)		G1		Z-4.00		F800			
Modifiziert:
01.
N230	#851	(ISO)		G1		Z-14.00		F800			
es sollten nur die Z-Werte geändert werden, welche als Vorzeichen ein - (minus) haben.
Eine Zeile mit folendem Inhalt:
01.
N3510	#851	(ISO)		G0						Z5.00					
darf nicht verändert werden. Ich hatte vergessen dies zu erwähnen, bzw. war mir das vorher selbst nicht bewusst.
Dies hat damit zu tun, das es sich um Koordinaten in einem Absolutsystem handelt.


Anbei ein längerer Code:

01.
  
02.
%100.0		 
03.
N10	#1600	(HAUPTPROG.>>UP.)	 
04.
#	L1=	200.0	L2=	200.0	L3=	20.0	L9=	0	L4=	2000	L5=	800	L6=	3	L0=	0	 
05.
#	L100=	101	L900=	0	L920=	0	L120=	0	L101=	0	L901=	0	L921=	0	L121=	0	 
06.
#	L102=	0	L902=	0	L922=	0	L122=	0	L103=	0	L903=	0	L923=	0	L123=	0	 
07.
#	L104=	0	L904=	0	L924=	0	L124=	0	L105=	0	L905=	0	L925=	0	L125=	0	 
08.
#	L106=	0	L906=	0	L926=	0	L126=	0	L107=	0	L907=	0	L927=	0	L127=	0	 
09.
#	L108=	0	L908=	0	L928=	0	L128=	0	L109=	0	L909=	0	L929=	0	L129=	0	 
10.
#	L110=	0	L910=	0	L930=	0	L130=	0	L111=	0	L911=	0	L931=	0	L131=	0	 
11.
#	L112=	0	L912=	0	L932=	0	L132=	0	L113=	0	L913=	0	L933=	0	L133=	0	 
12.
#	L114=	0	L914=	0	L934=	0	L134=	0	L115=	0	L915=	0	L935=	0	L135=	0	 
13.
#	L116=	0	L916=	0	L936=	0	L136=	0	L117=	0	L917=	0	L937=	0	L137=	0	 
14.
#	L118=	0	L918=	0	L938=	0	L138=	0	L119=	9900	L919=	0	L939=	0	L139=	0	 
15.
#	G0$0							 
16.
#	G77H9950	 
17.
%101.0		 
18.
N10	#2000	(FRAESER:START-POS.)	 
19.
#	L140=	0	L141=	0	L142=	-10	L143=	1	L144=	102	L145=	12000	L146=	2000	L147=	1	L148=	0	 
20.
#	G77H9956	 
21.
%102.0		 
22.
#2	 
23.
N210	#851	(ISO)		G90		XY	ZL112					 
24.
N220	#851	(ISO)		G0		X81.58		Y80.67					 
25.
N230	#851	(ISO)		G1		Z-4.00		F800			 
26.
N240	#851	(ISO)		G1		X83.24		Y82.33							 
27.
N250	#851	(ISO)		G1		X81.58		Y83.99							 
28.
N260	#851	(ISO)		G1		X83.24		Y82.33							 
29.
N270	#851	(ISO)		G1		X86.43									 
30.
N280	#851	(ISO)		G1		X88.10		Y83.99							 
31.
N290	#851	(ISO)		G1		X86.43		Y82.33							 
32.
N300	#851	(ISO)		G1		X88.10		Y80.67							 
33.
N310	#851	(ISO)		G1		X86.43		Y82.33							 
34.
N320	#851	(ISO)		G1		X83.24									 
35.
N330	#851	(ISO)		G1		X81.58		Y80.67							 
36.
N340	#851	(ISO)		G1		X75.50		Y74.59							 
37.
N350	#851	(ISO)		G1		X73.58		Y72.67							 
38.
N360	#851	(ISO)		G1		X75.50		Y74.59							 
39.
N370	#851	(ISO)		G1				Y90.07							 
40.
N380	#851	(ISO)		G1		X73.58		Y91.99							 
41.
N390	#851	(ISO)		G1		X75.50		Y90.07							 
42.
N400	#851	(ISO)		G1		X94.18									 
43.
N410	#851	(ISO)		G1		X96.10		Y91.99							 
44.
N420	#851	(ISO)		G1		X94.18		Y90.07							 
45.
N430	#851	(ISO)		G1				Y74.59							 
46.
N440	#851	(ISO)		G1		X96.10		Y72.67							 
47.
N450	#851	(ISO)		G1		X94.18		Y74.59							 
48.
N460	#851	(ISO)		G1		X75.50									 
49.
N470	#851	(ISO)		G1		X67.50		Y66.59							 
50.
N480	#851	(ISO)		G1		X65.58		Y64.67							 
51.
N490	#851	(ISO)		G1		X67.50		Y66.59							 
52.
N500	#851	(ISO)		G1				Y98.07							 
53.
N510	#851	(ISO)		G1		X65.58		Y99.99							 
54.
N520	#851	(ISO)		G1		X67.50		Y98.07							 
55.
N530	#851	(ISO)		G1		X102.18									 
56.
N540	#851	(ISO)		G1		X104.10		Y99.99							 
57.
N550	#851	(ISO)		G1		X102.18		Y98.07							 
58.
N560	#851	(ISO)		G1				Y66.59							 
59.
N570	#851	(ISO)		G1		X104.10		Y64.67							 
60.
N580	#851	(ISO)		G1		X102.18		Y66.59							 
61.
N590	#851	(ISO)		G1		X67.50									 
62.
N600	#851	(ISO)		G1		X59.50		Y58.59							 
63.
N610	#851	(ISO)		G1		X57.58		Y56.67							 
64.
N620	#851	(ISO)		G1		X59.50		Y58.59							 
65.
N630	#851	(ISO)		G1				Y106.07							 
66.
N640	#851	(ISO)		G1		X57.58		Y107.99							 
67.
N650	#851	(ISO)		G1		X59.50		Y106.07							 
68.
N660	#851	(ISO)		G1		X110.18									 
69.
N670	#851	(ISO)		G1		X112.10		Y107.99							 
70.
N680	#851	(ISO)		G1		X110.18		Y106.07							 
71.
N690	#851	(ISO)		G1				Y58.59							 
72.
N700	#851	(ISO)		G1		X112.10		Y56.67							 
73.
N710	#851	(ISO)		G1		X110.18		Y58.59							 
74.
N720	#851	(ISO)		G1		X59.50									 
75.
N730	#851	(ISO)		G1		X51.50		Y50.59							 
76.
N740	#851	(ISO)		G1		X49.58		Y48.67							 
77.
N750	#851	(ISO)		G1		X51.50		Y50.59							 
78.
N760	#851	(ISO)		G1				Y114.07							 
79.
N770	#851	(ISO)		G1		X49.58		Y115.99							 
80.
N780	#851	(ISO)		G1		X51.50		Y114.07							 
81.
N790	#851	(ISO)		G1		X118.18									 
82.
N800	#851	(ISO)		G1		X120.10		Y115.99							 
83.
N810	#851	(ISO)		G1		X118.18		Y114.07							 
84.
N820	#851	(ISO)		G1				Y50.59							 
85.
N830	#851	(ISO)		G1		X120.10		Y48.67							 
86.
N840	#851	(ISO)		G1		X118.18		Y50.59							 
87.
N850	#851	(ISO)		G1		X51.50									 
88.
N860	#851	(ISO)		G1		X43.50		Y42.59							 
89.
N870	#851	(ISO)		G1		X41.58		Y40.67							 
90.
N880	#851	(ISO)		G1		X43.50		Y42.59							 
91.
N890	#851	(ISO)		G1				Y122.07							 
92.
N900	#851	(ISO)		G1		X41.58		Y123.99							 
93.
N910	#851	(ISO)		G1		X43.50		Y122.07							 
94.
N920	#851	(ISO)		G1		X126.18									 
95.
N930	#851	(ISO)		G1		X128.10		Y123.99							 
96.
N940	#851	(ISO)		G1		X126.18		Y122.07							 
97.
N950	#851	(ISO)		G1				Y42.59							 
98.
N960	#851	(ISO)		G1		X128.10		Y40.67							 
99.
N970	#851	(ISO)		G1		X126.18		Y42.59							 
100.
N980	#851	(ISO)		G1		X43.50									 
101.
N990	#851	(ISO)		G1		X35.50		Y34.59							 
102.
N1000	#851	(ISO)		G1				Y130.07							 
103.
N1010	#851	(ISO)		G1		X134.18									 
104.
N1020	#851	(ISO)		G1				Y34.59							 
105.
N1030	#851	(ISO)		G1		X35.50									 
106.
N1040	#851	(ISO)		G1		X27.50									 
107.
N1050	#851	(ISO)		G1				Y130.07							 
108.
N1060	#851	(ISO)		G2		X35.50		Y138.07		I35.50		J130.07					 
109.
N1070	#851	(ISO)		G1		X134.18									 
110.
N1080	#851	(ISO)		G2		X142.18		Y130.07		I134.18		J130.07					 
111.
N1090	#851	(ISO)		G1				Y34.59							 
112.
N1100	#851	(ISO)		G2		X134.18		Y26.59		I134.18		J34.59					 
113.
N1110	#851	(ISO)		G1		X35.50									 
114.
N1120	#851	(ISO)		G2		X27.50		Y34.59		I35.50		J34.59					 
115.
N1130	#851	(ISO)		G1		X19.50									 
116.
N1140	#851	(ISO)		G1				Y130.07							 
117.
N1150	#851	(ISO)		G2		X35.50		Y146.07		I35.50		J130.07					 
118.
N1160	#851	(ISO)		G1		X134.18									 
119.
N1170	#851	(ISO)		G2		X150.18		Y130.07		I134.18		J130.07					 
120.
N1180	#851	(ISO)		G1				Y34.59							 
121.
N1190	#851	(ISO)		G2		X134.18		Y18.59		I134.18		J34.59					 
122.
N1200	#851	(ISO)		G1		X35.50									 
123.
N1210	#851	(ISO)		G2		X19.50		Y34.59		I35.50		J34.59					 
124.
N1220	#851	(ISO)		G1		X11.50									 
125.
N1230	#851	(ISO)		G1				Y130.07							 
126.
N1240	#851	(ISO)		G2		X35.50		Y154.07		I35.50		J130.07					 
127.
N1250	#851	(ISO)		G1		X134.18									 
128.
N1260	#851	(ISO)		G2		X158.18		Y130.07		I134.18		J130.07					 
129.
N1270	#851	(ISO)		G1				Y34.59							 
130.
N1280	#851	(ISO)		G2		X134.18		Y10.59		I134.18		J34.59					 
131.
N1290	#851	(ISO)		G1		X35.50									 
132.
N1300	#851	(ISO)		G2		X11.50		Y34.59		I35.50		J34.59					 
133.
N1310	#851	(ISO)		G0						Z5.00					 
134.
N1320	#851	(ISO)		G0		X81.58		Y80.67							 
135.
N1330	#851	(ISO)		G1		Z-8.00		F800			 
136.
N1340	#851	(ISO)		G1		X83.24		Y82.33							 
137.
N1350	#851	(ISO)		G1		X81.58		Y83.99							 
138.
N1360	#851	(ISO)		G1		X83.24		Y82.33							 
139.
N1370	#851	(ISO)		G1		X86.43									 
140.
N1380	#851	(ISO)		G1		X88.10		Y83.99							 
141.
N1390	#851	(ISO)		G1		X86.43		Y82.33							 
142.
N1400	#851	(ISO)		G1		X88.10		Y80.67							 
143.
N1410	#851	(ISO)		G1		X86.43		Y82.33							 
144.
N1420	#851	(ISO)		G1		X83.24									 
145.
N1430	#851	(ISO)		G1		X81.58		Y80.67							 
146.
N1440	#851	(ISO)		G1		X75.50		Y74.59							 
147.
N1450	#851	(ISO)		G1		X73.58		Y72.67							 
148.
N1460	#851	(ISO)		G1		X75.50		Y74.59							 
149.
N1470	#851	(ISO)		G1				Y90.07							 
150.
N1480	#851	(ISO)		G1		X73.58		Y91.99							 
151.
N1490	#851	(ISO)		G1		X75.50		Y90.07							 
152.
N1500	#851	(ISO)		G1		X94.18									 
153.
N1510	#851	(ISO)		G1		X96.10		Y91.99							 
154.
N1520	#851	(ISO)		G1		X94.18		Y90.07							 
155.
N1530	#851	(ISO)		G1				Y74.59							 
156.
N1540	#851	(ISO)		G1		X96.10		Y72.67							 
157.
N1550	#851	(ISO)		G1		X94.18		Y74.59							 
158.
N1560	#851	(ISO)		G1		X75.50									 
159.
N1570	#851	(ISO)		G1		X67.50		Y66.59							 
160.
N1580	#851	(ISO)		G1		X65.58		Y64.67							 
161.
N1590	#851	(ISO)		G1		X67.50		Y66.59							 
162.
N1600	#851	(ISO)		G1				Y98.07							 
163.
N1610	#851	(ISO)		G1		X65.58		Y99.99							 
164.
N1620	#851	(ISO)		G1		X67.50		Y98.07							 
165.
N1630	#851	(ISO)		G1		X102.18									 
166.
N1640	#851	(ISO)		G1		X104.10		Y99.99							 
167.
N1650	#851	(ISO)		G1		X102.18		Y98.07							 
168.
N1660	#851	(ISO)		G1				Y66.59							 
169.
N1670	#851	(ISO)		G1		X104.10		Y64.67							 
170.
N1680	#851	(ISO)		G1		X102.18		Y66.59							 
171.
N1690	#851	(ISO)		G1		X67.50									 
172.
N1700	#851	(ISO)		G1		X59.50		Y58.59							 
173.
N1710	#851	(ISO)		G1		X57.58		Y56.67							 
174.
N1720	#851	(ISO)		G1		X59.50		Y58.59							 
175.
N1730	#851	(ISO)		G1				Y106.07							 
176.
N1740	#851	(ISO)		G1		X57.58		Y107.99							 
177.
N1750	#851	(ISO)		G1		X59.50		Y106.07							 
178.
N1760	#851	(ISO)		G1		X110.18									 
179.
N1770	#851	(ISO)		G1		X112.10		Y107.99							 
180.
N1780	#851	(ISO)		G1		X110.18		Y106.07							 
181.
N1790	#851	(ISO)		G1				Y58.59							 
182.
N1800	#851	(ISO)		G1		X112.10		Y56.67							 
183.
N1810	#851	(ISO)		G1		X110.18		Y58.59							 
184.
N1820	#851	(ISO)		G1		X59.50									 
185.
N1830	#851	(ISO)		G1		X51.50		Y50.59							 
186.
N1840	#851	(ISO)		G1		X49.58		Y48.67							 
187.
N1850	#851	(ISO)		G1		X51.50		Y50.59							 
188.
N1860	#851	(ISO)		G1				Y114.07							 
189.
N1870	#851	(ISO)		G1		X49.58		Y115.99							 
190.
N1880	#851	(ISO)		G1		X51.50		Y114.07							 
191.
N1890	#851	(ISO)		G1		X118.18									 
192.
N1900	#851	(ISO)		G1		X120.10		Y115.99							 
193.
N1910	#851	(ISO)		G1		X118.18		Y114.07							 
194.
N1920	#851	(ISO)		G1				Y50.59							 
195.
N1930	#851	(ISO)		G1		X120.10		Y48.67							 
196.
N1940	#851	(ISO)		G1		X118.18		Y50.59							 
197.
N1950	#851	(ISO)		G1		X51.50									 
198.
N1960	#851	(ISO)		G1		X43.50		Y42.59							 
199.
N1970	#851	(ISO)		G1		X41.58		Y40.67							 
200.
N1980	#851	(ISO)		G1		X43.50		Y42.59							 
201.
N1990	#851	(ISO)		G1				Y122.07							 
202.
N2000	#851	(ISO)		G1		X41.58		Y123.99							 
203.
N2010	#851	(ISO)		G1		X43.50		Y122.07							 
204.
N2020	#851	(ISO)		G1		X126.18									 
205.
N2030	#851	(ISO)		G1		X128.10		Y123.99							 
206.
N2040	#851	(ISO)		G1		X126.18		Y122.07							 
207.
N2050	#851	(ISO)		G1				Y42.59							 
208.
N2060	#851	(ISO)		G1		X128.10		Y40.67							 
209.
N2070	#851	(ISO)		G1		X126.18		Y42.59							 
210.
N2080	#851	(ISO)		G1		X43.50									 
211.
N2090	#851	(ISO)		G1		X35.50		Y34.59							 
212.
N2100	#851	(ISO)		G1				Y130.07							 
213.
N2110	#851	(ISO)		G1		X134.18									 
214.
N2120	#851	(ISO)		G1				Y34.59							 
215.
N2130	#851	(ISO)		G1		X35.50									 
216.
N2140	#851	(ISO)		G1		X27.50									 
217.
N2150	#851	(ISO)		G1				Y130.07							 
218.
N2160	#851	(ISO)		G2		X35.50		Y138.07		I35.50		J130.07					 
219.
N2170	#851	(ISO)		G1		X134.18									 
220.
N2180	#851	(ISO)		G2		X142.18		Y130.07		I134.18		J130.07					 
221.
N2190	#851	(ISO)		G1				Y34.59							 
222.
N2200	#851	(ISO)		G2		X134.18		Y26.59		I134.18		J34.59					 
223.
N2210	#851	(ISO)		G1		X35.50									 
224.
N2220	#851	(ISO)		G2		X27.50		Y34.59		I35.50		J34.59					 
225.
N2230	#851	(ISO)		G1		X19.50									 
226.
N2240	#851	(ISO)		G1				Y130.07							 
227.
N2250	#851	(ISO)		G2		X35.50		Y146.07		I35.50		J130.07					 
228.
N2260	#851	(ISO)		G1		X134.18									 
229.
N2270	#851	(ISO)		G2		X150.18		Y130.07		I134.18		J130.07					 
230.
N2280	#851	(ISO)		G1				Y34.59							 
231.
N2290	#851	(ISO)		G2		X134.18		Y18.59		I134.18		J34.59					 
232.
N2300	#851	(ISO)		G1		X35.50									 
233.
N2310	#851	(ISO)		G2		X19.50		Y34.59		I35.50		J34.59					 
234.
N2320	#851	(ISO)		G1		X11.50									 
235.
N2330	#851	(ISO)		G1				Y130.07							 
236.
N2340	#851	(ISO)		G2		X35.50		Y154.07		I35.50		J130.07					 
237.
N2350	#851	(ISO)		G1		X134.18									 
238.
N2360	#851	(ISO)		G2		X158.18		Y130.07		I134.18		J130.07					 
239.
N2370	#851	(ISO)		G1				Y34.59							 
240.
N2380	#851	(ISO)		G2		X134.18		Y10.59		I134.18		J34.59					 
241.
N2390	#851	(ISO)		G1		X35.50									 
242.
N2400	#851	(ISO)		G2		X11.50		Y34.59		I35.50		J34.59					 
243.
N2410	#851	(ISO)		G0						Z5.00					 
244.
N2420	#851	(ISO)		G0		X81.58		Y80.67							 
245.
N2430	#851	(ISO)		G1		Z-12.00		F800			 
246.
N2440	#851	(ISO)		G1		X83.24		Y82.33							 
247.
N2450	#851	(ISO)		G1		X81.58		Y83.99							 
248.
N2460	#851	(ISO)		G1		X83.24		Y82.33							 
249.
N2470	#851	(ISO)		G1		X86.43									 
250.
N2480	#851	(ISO)		G1		X88.10		Y83.99							 
251.
N2490	#851	(ISO)		G1		X86.43		Y82.33							 
252.
N2500	#851	(ISO)		G1		X88.10		Y80.67							 
253.
N2510	#851	(ISO)		G1		X86.43		Y82.33							 
254.
N2520	#851	(ISO)		G1		X83.24									 
255.
N2530	#851	(ISO)		G1		X81.58		Y80.67							 
256.
N2540	#851	(ISO)		G1		X75.50		Y74.59							 
257.
N2550	#851	(ISO)		G1		X73.58		Y72.67							 
258.
N2560	#851	(ISO)		G1		X75.50		Y74.59							 
259.
N2570	#851	(ISO)		G1				Y90.07							 
260.
N2580	#851	(ISO)		G1		X73.58		Y91.99							 
261.
N2590	#851	(ISO)		G1		X75.50		Y90.07							 
262.
N2600	#851	(ISO)		G1		X94.18									 
263.
N2610	#851	(ISO)		G1		X96.10		Y91.99							 
264.
N2620	#851	(ISO)		G1		X94.18		Y90.07							 
265.
N2630	#851	(ISO)		G1				Y74.59							 
266.
N2640	#851	(ISO)		G1		X96.10		Y72.67							 
267.
N2650	#851	(ISO)		G1		X94.18		Y74.59							 
268.
N2660	#851	(ISO)		G1		X75.50									 
269.
N2670	#851	(ISO)		G1		X67.50		Y66.59							 
270.
N2680	#851	(ISO)		G1		X65.58		Y64.67							 
271.
N2690	#851	(ISO)		G1		X67.50		Y66.59							 
272.
N2700	#851	(ISO)		G1				Y98.07							 
273.
N2710	#851	(ISO)		G1		X65.58		Y99.99							 
274.
N2720	#851	(ISO)		G1		X67.50		Y98.07							 
275.
N2730	#851	(ISO)		G1		X102.18									 
276.
N2740	#851	(ISO)		G1		X104.10		Y99.99							 
277.
N2750	#851	(ISO)		G1		X102.18		Y98.07							 
278.
N2760	#851	(ISO)		G1				Y66.59							 
279.
N2770	#851	(ISO)		G1		X104.10		Y64.67							 
280.
N2780	#851	(ISO)		G1		X102.18		Y66.59							 
281.
N2790	#851	(ISO)		G1		X67.50									 
282.
N2800	#851	(ISO)		G1		X59.50		Y58.59							 
283.
N2810	#851	(ISO)		G1		X57.58		Y56.67							 
284.
N2820	#851	(ISO)		G1		X59.50		Y58.59							 
285.
N2830	#851	(ISO)		G1				Y106.07							 
286.
N2840	#851	(ISO)		G1		X57.58		Y107.99							 
287.
N2850	#851	(ISO)		G1		X59.50		Y106.07							 
288.
N2860	#851	(ISO)		G1		X110.18									 
289.
N2870	#851	(ISO)		G1		X112.10		Y107.99							 
290.
N2880	#851	(ISO)		G1		X110.18		Y106.07							 
291.
N2890	#851	(ISO)		G1				Y58.59							 
292.
N2900	#851	(ISO)		G1		X112.10		Y56.67							 
293.
N2910	#851	(ISO)		G1		X110.18		Y58.59							 
294.
N2920	#851	(ISO)		G1		X59.50									 
295.
N2930	#851	(ISO)		G1		X51.50		Y50.59							 
296.
N2940	#851	(ISO)		G1		X49.58		Y48.67							 
297.
N2950	#851	(ISO)		G1		X51.50		Y50.59							 
298.
N2960	#851	(ISO)		G1				Y114.07							 
299.
N2970	#851	(ISO)		G1		X49.58		Y115.99							 
300.
N2980	#851	(ISO)		G1		X51.50		Y114.07							 
301.
N2990	#851	(ISO)		G1		X118.18									 
302.
N3000	#851	(ISO)		G1		X120.10		Y115.99							 
303.
N3010	#851	(ISO)		G1		X118.18		Y114.07							 
304.
N3020	#851	(ISO)		G1				Y50.59							 
305.
N3030	#851	(ISO)		G1		X120.10		Y48.67							 
306.
N3040	#851	(ISO)		G1		X118.18		Y50.59							 
307.
N3050	#851	(ISO)		G1		X51.50									 
308.
N3060	#851	(ISO)		G1		X43.50		Y42.59							 
309.
N3070	#851	(ISO)		G1		X41.58		Y40.67							 
310.
N3080	#851	(ISO)		G1		X43.50		Y42.59							 
311.
N3090	#851	(ISO)		G1				Y122.07							 
312.
N3100	#851	(ISO)		G1		X41.58		Y123.99							 
313.
N3110	#851	(ISO)		G1		X43.50		Y122.07							 
314.
N3120	#851	(ISO)		G1		X126.18									 
315.
N3130	#851	(ISO)		G1		X128.10		Y123.99							 
316.
N3140	#851	(ISO)		G1		X126.18		Y122.07							 
317.
N3150	#851	(ISO)		G1				Y42.59							 
318.
N3160	#851	(ISO)		G1		X128.10		Y40.67							 
319.
N3170	#851	(ISO)		G1		X126.18		Y42.59							 
320.
N3180	#851	(ISO)		G1		X43.50									 
321.
N3190	#851	(ISO)		G1		X35.50		Y34.59							 
322.
N3200	#851	(ISO)		G1				Y130.07							 
323.
N3210	#851	(ISO)		G1		X134.18									 
324.
N3220	#851	(ISO)		G1				Y34.59							 
325.
N3230	#851	(ISO)		G1		X35.50									 
326.
N3240	#851	(ISO)		G1		X27.50									 
327.
N3250	#851	(ISO)		G1				Y130.07							 
328.
N3260	#851	(ISO)		G2		X35.50		Y138.07		I35.50		J130.07					 
329.
N3270	#851	(ISO)		G1		X134.18									 
330.
N3280	#851	(ISO)		G2		X142.18		Y130.07		I134.18		J130.07					 
331.
N3290	#851	(ISO)		G1				Y34.59							 
332.
N3300	#851	(ISO)		G2		X134.18		Y26.59		I134.18		J34.59					 
333.
N3310	#851	(ISO)		G1		X35.50									 
334.
N3320	#851	(ISO)		G2		X27.50		Y34.59		I35.50		J34.59					 
335.
N3330	#851	(ISO)		G1		X19.50									 
336.
N3340	#851	(ISO)		G1				Y130.07							 
337.
N3350	#851	(ISO)		G2		X35.50		Y146.07		I35.50		J130.07					 
338.
N3360	#851	(ISO)		G1		X134.18									 
339.
N3370	#851	(ISO)		G2		X150.18		Y130.07		I134.18		J130.07					 
340.
N3380	#851	(ISO)		G1				Y34.59							 
341.
N3390	#851	(ISO)		G2		X134.18		Y18.59		I134.18		J34.59					 
342.
N3400	#851	(ISO)		G1		X35.50									 
343.
N3410	#851	(ISO)		G2		X19.50		Y34.59		I35.50		J34.59					 
344.
N3420	#851	(ISO)		G1		X11.50									 
345.
N3430	#851	(ISO)		G1				Y130.07							 
346.
N3440	#851	(ISO)		G2		X35.50		Y154.07		I35.50		J130.07					 
347.
N3450	#851	(ISO)		G1		X134.18									 
348.
N3460	#851	(ISO)		G2		X158.18		Y130.07		I134.18		J130.07					 
349.
N3470	#851	(ISO)		G1				Y34.59							 
350.
N3480	#851	(ISO)		G2		X134.18		Y10.59		I134.18		J34.59					 
351.
N3490	#851	(ISO)		G1		X35.50									 
352.
N3500	#851	(ISO)		G2		X11.50		Y34.59		I35.50		J34.59					 
353.
N3510	#851	(ISO)		G0						Z5.00					 
354.
N3520	#851	(ISO)		G0		X81.58		Y80.67							 
355.
N3530	#851	(ISO)		G1		Z-16.00		F800			 
356.
N3540	#851	(ISO)		G1		X83.24		Y82.33							 
357.
N3550	#851	(ISO)		G1		X81.58		Y83.99							 
358.
N3560	#851	(ISO)		G1		X83.24		Y82.33							 
359.
N3570	#851	(ISO)		G1		X86.43									 
360.
N3580	#851	(ISO)		G1		X88.10		Y83.99							 
361.
N3590	#851	(ISO)		G1		X86.43		Y82.33							 
362.
N3600	#851	(ISO)		G1		X88.10		Y80.67							 
363.
N3610	#851	(ISO)		G1		X86.43		Y82.33							 
364.
N3620	#851	(ISO)		G1		X83.24									 
365.
N3630	#851	(ISO)		G1		X81.58		Y80.67							 
366.
N3640	#851	(ISO)		G1		X75.50		Y74.59							 
367.
N3650	#851	(ISO)		G1		X73.58		Y72.67							 
368.
N3660	#851	(ISO)		G1		X75.50		Y74.59							 
369.
N3670	#851	(ISO)		G1				Y90.07							 
370.
N3680	#851	(ISO)		G1		X73.58		Y91.99							 
371.
N3690	#851	(ISO)		G1		X75.50		Y90.07							 
372.
N3700	#851	(ISO)		G1		X94.18									 
373.
N3710	#851	(ISO)		G1		X96.10		Y91.99							 
374.
N3720	#851	(ISO)		G1		X94.18		Y90.07							 
375.
N3730	#851	(ISO)		G1				Y74.59							 
376.
N3740	#851	(ISO)		G1		X96.10		Y72.67							 
377.
N3750	#851	(ISO)		G1		X94.18		Y74.59							 
378.
N3760	#851	(ISO)		G1		X75.50									 
379.
N3770	#851	(ISO)		G1		X67.50		Y66.59							 
380.
N3780	#851	(ISO)		G1		X65.58		Y64.67							 
381.
N3790	#851	(ISO)		G1		X67.50		Y66.59							 
382.
N3800	#851	(ISO)		G1				Y98.07							 
383.
N3810	#851	(ISO)		G1		X65.58		Y99.99							 
384.
N3820	#851	(ISO)		G1		X67.50		Y98.07							 
385.
N3830	#851	(ISO)		G1		X102.18									 
386.
N3840	#851	(ISO)		G1		X104.10		Y99.99							 
387.
N3850	#851	(ISO)		G1		X102.18		Y98.07							 
388.
N3860	#851	(ISO)		G1				Y66.59							 
389.
N3870	#851	(ISO)		G1		X104.10		Y64.67							 
390.
N3880	#851	(ISO)		G1		X102.18		Y66.59							 
391.
N3890	#851	(ISO)		G1		X67.50									 
392.
N3900	#851	(ISO)		G1		X59.50		Y58.59							 
393.
N3910	#851	(ISO)		G1		X57.58		Y56.67							 
394.
N3920	#851	(ISO)		G1		X59.50		Y58.59							 
395.
N3930	#851	(ISO)		G1				Y106.07							 
396.
N3940	#851	(ISO)		G1		X57.58		Y107.99							 
397.
N3950	#851	(ISO)		G1		X59.50		Y106.07							 
398.
N3960	#851	(ISO)		G1		X110.18									 
399.
N3970	#851	(ISO)		G1		X112.10		Y107.99							 
400.
N3980	#851	(ISO)		G1		X110.18		Y106.07							 
401.
N3990	#851	(ISO)		G1				Y58.59							 
402.
N4000	#851	(ISO)		G1		X112.10		Y56.67							 
403.
N4010	#851	(ISO)		G1		X110.18		Y58.59							 
404.
N4020	#851	(ISO)		G1		X59.50									 
405.
N4030	#851	(ISO)		G1		X51.50		Y50.59							 
406.
N4040	#851	(ISO)		G1		X49.58		Y48.67							 
407.
N4050	#851	(ISO)		G1		X51.50		Y50.59							 
408.
N4060	#851	(ISO)		G1				Y114.07							 
409.
N4070	#851	(ISO)		G1		X49.58		Y115.99							 
410.
N4080	#851	(ISO)		G1		X51.50		Y114.07							 
411.
N4090	#851	(ISO)		G1		X118.18									 
412.
N4100	#851	(ISO)		G1		X120.10		Y115.99							 
413.
N4110	#851	(ISO)		G1		X118.18		Y114.07							 
414.
N4120	#851	(ISO)		G1				Y50.59							 
415.
N4130	#851	(ISO)		G1		X120.10		Y48.67							 
416.
N4140	#851	(ISO)		G1		X118.18		Y50.59							 
417.
N4150	#851	(ISO)		G1		X51.50									 
418.
N4160	#851	(ISO)		G1		X43.50		Y42.59							 
419.
N4170	#851	(ISO)		G1		X41.58		Y40.67							 
420.
N4180	#851	(ISO)		G1		X43.50		Y42.59							 
421.
N4190	#851	(ISO)		G1				Y122.07							 
422.
N4200	#851	(ISO)		G1		X41.58		Y123.99							 
423.
N4210	#851	(ISO)		G1		X43.50		Y122.07							 
424.
N4220	#851	(ISO)		G1		X126.18									 
425.
N4230	#851	(ISO)		G1		X128.10		Y123.99							 
426.
N4240	#851	(ISO)		G1		X126.18		Y122.07							 
427.
N4250	#851	(ISO)		G1				Y42.59							 
428.
N4260	#851	(ISO)		G1		X128.10		Y40.67							 
429.
N4270	#851	(ISO)		G1		X126.18		Y42.59							 
430.
N4280	#851	(ISO)		G1		X43.50									 
431.
N4290	#851	(ISO)		G1		X35.50		Y34.59							 
432.
N4300	#851	(ISO)		G1				Y130.07							 
433.
N4310	#851	(ISO)		G1		X134.18									 
434.
N4320	#851	(ISO)		G1				Y34.59							 
435.
N4330	#851	(ISO)		G1		X35.50									 
436.
N4340	#851	(ISO)		G1		X27.50									 
437.
N4350	#851	(ISO)		G1				Y130.07							 
438.
N4360	#851	(ISO)		G2		X35.50		Y138.07		I35.50		J130.07					 
439.
N4370	#851	(ISO)		G1		X134.18									 
440.
N4380	#851	(ISO)		G2		X142.18		Y130.07		I134.18		J130.07					 
441.
N4390	#851	(ISO)		G1				Y34.59							 
442.
N4400	#851	(ISO)		G2		X134.18		Y26.59		I134.18		J34.59					 
443.
N4410	#851	(ISO)		G1		X35.50									 
444.
N4420	#851	(ISO)		G2		X27.50		Y34.59		I35.50		J34.59					 
445.
N4430	#851	(ISO)		G1		X19.50									 
446.
N4440	#851	(ISO)		G1				Y130.07							 
447.
N4450	#851	(ISO)		G2		X35.50		Y146.07		I35.50		J130.07					 
448.
N4460	#851	(ISO)		G1		X134.18									 
449.
N4470	#851	(ISO)		G2		X150.18		Y130.07		I134.18		J130.07					 
450.
N4480	#851	(ISO)		G1				Y34.59							 
451.
N4490	#851	(ISO)		G2		X134.18		Y18.59		I134.18		J34.59					 
452.
N4500	#851	(ISO)		G1		X35.50									 
453.
N4510	#851	(ISO)		G2		X19.50		Y34.59		I35.50		J34.59					 
454.
N4520	#851	(ISO)		G1		X11.50									 
455.
N4530	#851	(ISO)		G1				Y130.07							 
456.
N4540	#851	(ISO)		G2		X35.50		Y154.07		I35.50		J130.07					 
457.
N4550	#851	(ISO)		G1		X134.18									 
458.
N4560	#851	(ISO)		G2		X158.18		Y130.07		I134.18		J130.07					 
459.
N4570	#851	(ISO)		G1				Y34.59							 
460.
N4580	#851	(ISO)		G2		X134.18		Y10.59		I134.18		J34.59					 
461.
N4590	#851	(ISO)		G1		X35.50									 
462.
N4600	#851	(ISO)		G2		X11.50		Y34.59		I35.50		J34.59					 
463.
N4610	#851	(ISO)		G0						Z5.00					 
464.
#3	 
465.

VBS, C oder C++ ich habe mich hierzu gestern etwas Informiert und es gibt eine menge unterschiedlicher Meinungen dazu. Was ist wirklich empfehlenswert zu erlernen? In Abhängigkeit der Anwendungen würde BATCH "vorerst" ausreichen.
C++ klingt sehr interessant!

Grüße

Jürgen
Bitte warten ..
Mitglied: icsat
18.08.2010 um 12:58 Uhr
Zitat von flipmode85:
Im Anhang ist eine weitere etwas größere Datei, die häufigkeit der Z-Werte ist sehr verschieden.
Ich finde maximal einen pro Zeile. Ist das richtig?

Zitat von flipmode85:
addiert werden soll, lässt sich in Zeile 18 finden L142= -10 dieser kann sich verändern
Ist es immer der Wert hinter "L142=" in den Headerdaten?
Steht "L142=" immer an der dritten Stelle der betroffenen Zeile?
Ist der Wert immer negativ oder kann der auch positiv sein?

Zitat von flipmode85:
VBS, C oder C++ ich habe mich hierzu gestern etwas Informiert und es gibt eine menge unterschiedlicher Meinungen dazu. Was ist
wirklich empfehlenswert zu erlernen? In Abhängigkeit der Anwendungen würde BATCH "vorerst" ausreichen.
C++ klingt sehr interessant!
Imho ist es empfehlenswert die Grundlagen der Programmierung zu verstehen. Die Sprache ist dann nur noch ein lernen von Vokabeln.
Die Frage ist eigentlich mehr, was für welchen Einsatzzweck sinnvoll ist.
Dabei würde ich für die Automatisierung von Jobabläufen auf Batch setzen.
Sind in den Jobabläufen Datenmanipulationen oder Dinge erforderlich, bei denen meine Batch-Kenntnisse an ihre Grenzen stoßen, nehme ich häufig VBS zur Unterstützung.
C++ würde ich dann eher zur Anwendungsentwicklung und weniger zum Steuern von Jobabläufen einsetzen.

Gruß icsat
Bitte warten ..
Mitglied: icsat
18.08.2010 um 23:15 Uhr
Moin,

Du hast jetzt zwar viele Daten hier reinkopiert, aber leider nicht wirklich variantenreich. Es sind nur ein paar Z-Werte enthalten. Naja egal.

Hier noch mal ein etwas modifizierter Code:
01.
:start 
02.
@echo off 
03.
setlocal EnableDelayedExpansion 
04.
set "gcode=C:\NC_NUM\DATA\GCODE" 
05.
set "origin=C:\NC_NUM\DATA\ORIGIN" 
06.
set "add=C:\NC_NUM\DATA\ADD" 
07.
set "num=C:\NC_NUM\DATA\NUM" 
08.
 
09.
for /f %%a in ('dir /b %GCODE%\*.NUM') do (  
10.
	REM Get copy in folders 
11.
	move %GCODE%\%%a %ORIGIN%\ 
12.
	set "eingabe=%ORIGIN%\%%a" 
13.
        set "ausgabe=%GCODE%\%%a 
14.
	call :add 
15.
        copy !AUSGABE! %ADD%\ 
16.
	call :crypt  
17.
	move !AUSGABE! %NUM%\ 
18.
19.
 
20.
:ende 
21.
endlocal 
22.
goto :eof  
23.
 
24.
:add 
25.
for /f "delims=Z tokens=1,2" %%i in (%EINGABE%) do ( 
26.
	set "zteil=%%j" 
27.
	if "!ZTEIL!"=="" ( 
28.
		echo %%i>>%AUSGABE% 
29.
		for /f "tokens=6,7 delims==	 " %%n in ("%%i") do ( 
30.
			if "%%n"=="L142" ( 
31.
				set "wert=%%o" 
32.
				for /f "tokens=1,2 delims=." %%p in ("%%o") do ( 
33.
					if "%%p" NEQ "" ( 
34.
						set addvk=%%p 
35.
					) else ( 
36.
						set addvk=0 
37.
38.
					if "%%q" NEQ "" ( 
39.
						set addnk=%%q 
40.
						if "!ADDNK:~0,1!"=="0" set addnk=!ADDNK:~1,1! 
41.
					) else ( 
42.
						set addnk=0 
43.
44.
45.
46.
47.
	) else ( 
48.
		if "!ZTEIL:~0,1!"=="-" ( 
49.
			for /f "tokens=1,2* delims=.	" %%k in ("!ZTEIL!") do ( 
50.
				set /a vk=%%k+!ADDVK! 
51.
				if %%l LEQ 99 ( 
52.
					set startnk=%%l 
53.
					if "!STARTNK:~0,1!"=="0" set startnk=!STARTNK:~1,1! 
54.
				) else ( 
55.
					set startnk=0 
56.
57.
				if "!ADDVK:~0,1!" EQU "-" ( 
58.
					set /a nk=!STARTNK!+!ADDNK! 
59.
				) else ( 
60.
					if !VK! LSS 0 set /a nk=!STARTNK!-!ADDNK! 
61.
					if !VK! GTR 0 set /a nk=!ADDNK!-!STARTNK! 
62.
					if !VK! EQU 0 ( 
63.
						if !ADDNK! GEQ !STARTNK! ( 
64.
							set /a nk=!ADDNK!-!STARTNK! 
65.
						) else ( 
66.
							set /a nk=!STARTNK!-!ADDNK! 
67.
68.
69.
70.
				if !NK! GEQ 100 ( 
71.
					if !VK! GEQ 0 ( 
72.
						set /a vk+=1 
73.
					) else ( 
74.
						set /a vk-=1 
75.
76.
					set /a nk-=100 
77.
78.
				if !NK! LSS 0 ( 
79.
					if !VK! GEQ 0 ( 
80.
						set /a vk-=1 
81.
					) else ( 
82.
						set /a vk+=1 
83.
						if !VK! EQU 0 set "vk=-0" 
84.
85.
					set /a nk+=100 
86.
87.
				if !NK! LSS 10 set "nk=0!NK!" 
88.
				if "%%m"=="" ( 
89.
					echo %%iZ!VK!.!NK!					%%l>>%AUSGABE% 
90.
				) else ( 
91.
					if "%%m" NEQ "" ( 
92.
						echo %%iZ!VK!.!NK!		%%m>>%AUSGABE% 
93.
					) else ( 
94.
						echo %%iZ!VK!.!NK!					%%m>>%AUSGABE% 
95.
96.
97.
98.
		) else ( 
99.
			echo %%iZ%%j>>%AUSGABE% 
100.
101.
102.
103.
 
104.
goto :eof 
105.
 
106.
:crypt 
107.
CHG -i %AUSGABE% -s [15] -r [15] 
108.
CHG -i %AUSGABE% -s [19] -r [19] 
109.
CHG -i %AUSGABE% -s [32] -r [32] 
110.
CHG -i %AUSGABE% -s [35] -r [163] 
111.
CHG -i %AUSGABE% -s [37] -r [165] 
112.
CHG -i %AUSGABE% -s [40] -r [40] 
113.
CHG -i %AUSGABE% -s [41] -r [169] 
114.
CHG -i %AUSGABE% -s [44] -r [172] 
115.
CHG -i %AUSGABE% -s [45] -r [45] 
116.
CHG -i %AUSGABE% -s [49] -r [177] 
117.
CHG -i %AUSGABE% -s [50] -r [178] 
118.
CHG -i %AUSGABE% -s [51] -r [51] 
119.
CHG -i %AUSGABE% -s [52] -r [180] 
120.
CHG -i %AUSGABE% -s [53] -r [53] 
121.
CHG -i %AUSGABE% -s [54] -r [54] 
122.
CHG -i %AUSGABE% -s [55] -r [183] 
123.
CHG -i %AUSGABE% -s [56] -r [184] 
124.
CHG -i %AUSGABE% -s [57] -r [57] 
125.
CHG -i %AUSGABE% -s [60] -r [60] 
126.
CHG -i %AUSGABE% -s [61] -r [189] 
127.
CHG -i %AUSGABE% -s [62] -r [190] 
128.
CHG -i %AUSGABE% -s [65] -r [65] 
129.
CHG -i %AUSGABE% -s [66] -r [66] 
130.
CHG -i %AUSGABE% -s [67] -r [195] 
131.
CHG -i %AUSGABE% -s [68] -r [68] 
132.
CHG -i %AUSGABE% -s [69] -r [197] 
133.
CHG -i %AUSGABE% -s [70] -r [198] 
134.
CHG -i %AUSGABE% -s [71] -r [71] 
135.
CHG -i %AUSGABE% -s [72] -r [72] 
136.
CHG -i %AUSGABE% -s [73] -r [201] 
137.
CHG -i %AUSGABE% -s [74] -r [202] 
138.
CHG -i %AUSGABE% -s [76] -r [204] 
139.
CHG -i %AUSGABE% -s [77] -r [77] 
140.
CHG -i %AUSGABE% -s [78] -r [78] 
141.
CHG -i %AUSGABE% -s [79] -r [207] 
142.
CHG -i %AUSGABE% -s [80] -r [80] 
143.
CHG -i %AUSGABE% -s [81] -r [209] 
144.
CHG -i %AUSGABE% -s [82] -r [210] 
145.
CHG -i %AUSGABE% -s [83] -r [83] 
146.
CHG -i %AUSGABE% -s [84] -r [212] 
147.
CHG -i %AUSGABE% -s [85] -r [85] 
148.
CHG -i %AUSGABE% -s [86] -r [86] 
149.
CHG -i %AUSGABE% -s [87] -r [215] 
150.
CHG -i %AUSGABE% -s [88] -r [216] 
151.
CHG -i %AUSGABE% -s [89] -r [89] 
152.
CHG -i %AUSGABE% -s [90] -r [90] 
153.
 
154.
goto :eof
Ich habe zwar etwas getestet, aber nur obeflächlich. Insbesondere bei den Rechenergebnissen bin ich mir nicht sicher, ob ich alle Eventualitäten abgedeckt habe.
Auch glaube ich nicht, dass Deine Testdaten alle Fälle abdecken. Daher wird bestimmt noch der ein oder andere Fehler bei Dir hochkommen.

[OT]
Leider fängt es an etwas unübersichtlich zu werden, da ich etwas schwer von Begriff bin und deshalb in jedem Deiner Posts neue Anforderungen finde.
Optimaler Weise gibt es vor der Realisierung soche Dinge wie Anforderungsanalyse, Konzeption und Design. Ist für Dein Problem natürlich etwas Oversized sich tagelang mit den Vorarbeiten zu befassen, aber etwas Zeit sollte da schon rein investiert werden. Die Zeit lohnt sich schon von daher, dass dieses später als Dokumentation dient oder zumindest die Grundlage dafür bildet.

Außerdem entwickelt sich das hier meiner Meinung nach gerade in die falsch Richtung. Ich helfe ja grundsätzlich gerne, wenn es anderen hilft sich dadurch in die Thematik einzuarbeiten.
Ich befürchte jedoch, dass ich hier in Ansätzen für Dich ein Firmenproblem löse ohne dass es für Dich vom Lernfaktor her einen hohen Wert hätte.

Das soll jetzt keine Kritik sein, sondern einfach nur eine Feststellung.
[/OT]

Gruß icsat
Bitte warten ..
Mitglied: icsat
19.08.2010 um 06:22 Uhr
Dennoch würde ich gerne meine Überlegung VBS zu nutzen noch einmal aufgreifen wollen. Das Batch würde dann, schön übersichtlich, wie folgt aussehen:
01.
:start 
02.
@echo off 
03.
setlocal EnableDelayedExpansion 
04.
set "gcode=C:\NC_NUM\DATA\GCODE" 
05.
set "origin=C:\NC_NUM\DATA\ORIGIN" 
06.
set "add=C:\NC_NUM\DATA\ADD" 
07.
set "num=C:\NC_NUM\DATA\NUM" 
08.
 
09.
for /f %%a in ('dir /b %GCODE%\*.NUM') do (  
10.
	REM Get copy in folders 
11.
	move %GCODE%\%%a %ORIGIN%\ 
12.
	set "eingabe=%ORIGIN%\%%a" 
13.
        set "ausgabe=%GCODE%\%%a 
14.
	call add.vbs !EINGABE! !AUSGABE! 
15.
        copy !AUSGABE! %ADD%\ 
16.
	call :crypt  
17.
	move !AUSGABE! %NUM%\ 
18.
19.
 
20.
:ende 
21.
endlocal 
22.
goto :eof  
23.
 
24.
 
25.
 
26.
:crypt 
27.
CHG -i %AUSGABE% -s [15] -r [15] 
28.
CHG -i %AUSGABE% -s [19] -r [19] 
29.
CHG -i %AUSGABE% -s [32] -r [32] 
30.
CHG -i %AUSGABE% -s [35] -r [163] 
31.
CHG -i %AUSGABE% -s [37] -r [165] 
32.
CHG -i %AUSGABE% -s [40] -r [40] 
33.
CHG -i %AUSGABE% -s [41] -r [169] 
34.
CHG -i %AUSGABE% -s [44] -r [172] 
35.
CHG -i %AUSGABE% -s [45] -r [45] 
36.
CHG -i %AUSGABE% -s [49] -r [177] 
37.
CHG -i %AUSGABE% -s [50] -r [178] 
38.
CHG -i %AUSGABE% -s [51] -r [51] 
39.
CHG -i %AUSGABE% -s [52] -r [180] 
40.
CHG -i %AUSGABE% -s [53] -r [53] 
41.
CHG -i %AUSGABE% -s [54] -r [54] 
42.
CHG -i %AUSGABE% -s [55] -r [183] 
43.
CHG -i %AUSGABE% -s [56] -r [184] 
44.
CHG -i %AUSGABE% -s [57] -r [57] 
45.
CHG -i %AUSGABE% -s [60] -r [60] 
46.
CHG -i %AUSGABE% -s [61] -r [189] 
47.
CHG -i %AUSGABE% -s [62] -r [190] 
48.
CHG -i %AUSGABE% -s [65] -r [65] 
49.
CHG -i %AUSGABE% -s [66] -r [66] 
50.
CHG -i %AUSGABE% -s [67] -r [195] 
51.
CHG -i %AUSGABE% -s [68] -r [68] 
52.
CHG -i %AUSGABE% -s [69] -r [197] 
53.
CHG -i %AUSGABE% -s [70] -r [198] 
54.
CHG -i %AUSGABE% -s [71] -r [71] 
55.
CHG -i %AUSGABE% -s [72] -r [72] 
56.
CHG -i %AUSGABE% -s [73] -r [201] 
57.
CHG -i %AUSGABE% -s [74] -r [202] 
58.
CHG -i %AUSGABE% -s [76] -r [204] 
59.
CHG -i %AUSGABE% -s [77] -r [77] 
60.
CHG -i %AUSGABE% -s [78] -r [78] 
61.
CHG -i %AUSGABE% -s [79] -r [207] 
62.
CHG -i %AUSGABE% -s [80] -r [80] 
63.
CHG -i %AUSGABE% -s [81] -r [209] 
64.
CHG -i %AUSGABE% -s [82] -r [210] 
65.
CHG -i %AUSGABE% -s [83] -r [83] 
66.
CHG -i %AUSGABE% -s [84] -r [212] 
67.
CHG -i %AUSGABE% -s [85] -r [85] 
68.
CHG -i %AUSGABE% -s [86] -r [86] 
69.
CHG -i %AUSGABE% -s [87] -r [215] 
70.
CHG -i %AUSGABE% -s [88] -r [216] 
71.
CHG -i %AUSGABE% -s [89] -r [89] 
72.
CHG -i %AUSGABE% -s [90] -r [90] 
73.
 
74.
goto :eof
Und das "add.vbs":
01.
'Übergabeparameter zuweisen 
02.
set objParameter = Wscript.Arguments 
03.
strEingabe = objParameter(0) 
04.
strAusgabe = objParameter(1) 
05.
 
06.
'Dateien Öffnen 
07.
set objFSO = CreateObject("Scripting.FileSystemObject") 
08.
 
09.
set fEingabe = objFSO.OpenTextFile(strEingabe) 
10.
set fAusgabe = objFSO.OpenTextFile(strAusgabe, 2, True) 
11.
 
12.
'Wert zum addieren Initialisieren 
13.
strADD = "" 
14.
 
15.
'Schleifen bis zum Dateiende 
16.
Do Until fEingabe.AtEndOfStream 
17.
	'Datensatz lesen 
18.
	strInput = fEingabe.ReadLine 
19.
	 
20.
	'Output Initialisieren 
21.
	strOutput = "" 
22.
	 
23.
	'Beginnt die Zeile mit # suchen wir nach L142 ansonsten nach Z- 
24.
	if mid(strInput,1,1)="#" Then 
25.
		for i=1 to len(strInput)-1 
26.
			'Gleichheitszeichen suchen 
27.
			if mid(strInput, i, 1) = "=" Then 
28.
				'Prüfen ob vor dem Gleichheitszeichen L142 steht 
29.
				if mid(strInput, i-4, 4) = "L142" Then 
30.
					for j=i+2 to len(strInput)-1 
31.
						'Nächsten TAB suchen 
32.
						if mid(strInput, j, 1) = "	" Then 
33.
							'Wert zu addieren festlegen, falls das noch nicht geschenen ist 
34.
							If strADD = "" Then 
35.
								strADD = mid(strInput, i+2, j-(i+2)) 
36.
								'Dezimalpunkt durch Komma ersetzen 
37.
								strADD = replace(strADD, ".", ",") 
38.
							end if 
39.
						end if 
40.
					next 
41.
				end if 
42.
			end if 
43.
		next 
44.
		'Orginal Zeile für Ausgabe übergeben 
45.
		strOutput = strInput 
46.
	else 
47.
		for i=1 to len(strInput)-1 
48.
			'Ursprungswert Initialisieren 
49.
			strUrwert = "" 
50.
			'nach Z- suchen 
51.
			if mid(strInput, i, 2) = "Z-" Then 
52.
				for j=i+1 to len(strInput)-1 
53.
					'Nächsten TAB suchen 
54.
					if mid(strInput, j, 1) = "	" Then 
55.
						'Ursprungswert festlegen, falls das noch nicht geschenen ist 
56.
						If strUrwert = "" Then 
57.
							strUrwert = mid(strInput, i+1, j-(i+1)) 
58.
							'Dezimalpunkt durch Komma ersetzen 
59.
							strUrwert = replace(strUrwert, ".", ",") 
60.
							'Neuen Wert berechnen 
61.
							strNeuwert = cDbl(strUrwert) + cDbl(strADD) 
62.
							'Wert Formatieren 
63.
							strNeuwert = FormatNumber(strNeuwert,2) 
64.
							'Komma durch Dezimalpunkt ersetzen 
65.
							strNeuwert = replace(strNeuwert, ",", ".") 
66.
							'Ausgabe zusammenbauen 
67.
							if strOutput = "" Then 
68.
								strOutput = mid(strInput, 1, i) & strNeuwert 
69.
								intSatzzeiger = i+1+(j-(i+1))+1 
70.
							else 
71.
								strOutput = strOutput & mid(strInput, intSatzzeiger, (i+1 - intSatzzeiger)) & strNeuwert 
72.
								intSatzzeiger = i+1+(j-(i+1))+1 
73.
							end if 
74.
						end if 
75.
					end if 
76.
				next 
77.
			end if 
78.
		next 
79.
		'Wurde der Output nicht gesetzt wird die Originalzeile für die Ausgabe übergeben	 
80.
		If strOutput = "" Then 
81.
			strOutput = strInput 
82.
		else 
83.
			strOutput = strOutput & mid(strInput, intSatzzeiger) 
84.
		end if 
85.
	end if 
86.
	 
87.
	'Zeile Ausgeben 
88.
	fAusgabe.WriteLine strOutput 
89.
	 
90.
Loop 
91.
 
92.
'Dateien schließen 
93.
fEingabe.Close 
94.
fAusgabe.Close 
95.
 
96.
'Objekte löschen 
97.
set objFSO = NOthing 
98.
 
99.
'Script beenden 
100.
Wscript.Quit(0)
Denke es ist etwas übersichtlicher als das reine Batch und soll zeigen, dass Batch in meinen Augen nicht immer erste Wahl ist.
Außerdem bekommst Du hiermit nun schon einmal einen Eindruck von den Unterschieden zwischen Batch und vbScript. Ich verzichte aber jetzt darauf Dir auch noch eine C oder c++ Lösung zu präsentieren.

Aber die Frage war ja ursprünglich:
Zitat von flipmode85:
Meine Frage hierzu: Ist es besser eine weitere *.bat Datei anzulegen in welcher meine "Wünsche" abgelegt werden, oder kann dies direkt in die crypt.bat mit aufgenommen werden? Ist das ganze üerhaupt machbar?

Daher ist dieser Post eigentlich OffTopic. Sorry. Ach, egal. Ich wünsche eine ruhige Restwoche.


Gruß icsat
Bitte warten ..
Mitglied: flipmode85
19.08.2010 um 10:14 Uhr
Hallo icsat,


bei dieser Aufgabenstellung handelt es sich nicht um eine Lösung für eine Firma oder Unternehmen. Ich habe es mir selst zum Ziel gesetzt solche Aufgaben zu lösen. Beruflich habe ich nicht im geringsten damit zu tun! Seit meinem 10. Lebensjahr habe ich ununterbrochen mit Computer zu tun gehabt. Mein erster PC war ein IBM X386 mit DOS 4.0. In erster Linie hatte ich mich damals dafür interessiert, was für Bewegung sorgt, Abläufe, kleine Spiele und das erlernen der Technik.

Seit Windows 98 hatte ich nicht mehr mit DOS-Anwendungen zu tun, bis vor 5 Wochen! Ein Freund bat mich um Hilfe - eines seiner doch sehr alten Programme auf seinem WindowsXP-Rechner auszuführen. Mit VirtualPC und einem DOS6.0 - Image hatte ich es geschafft die Anwendung zu starten und konnte mich wie aus dem nichts, an doch soviele DOS-Befehle erinnern. Da die Anwendung noch nicht wirklich seine Dienste erfüllte, müsste eine BATCH-Datei erstellt werden, welche Zeichenfolgen abändert - damit begann im Grunde mein interesse an BATCH.

VBS scheint auch eine sehr interessante Technik zu sein um solche Aufgaben zu lösen.

Zurück zum Thema:

Die häufigkeit der Z-Werte ist je nach Anwendung sehr unterschiedlich. Die Ausgabe kann in jeder Zeile erfolgen, sofern sich alle 3-Achsen gleichzeitig Bewegen müssen, dies ist allerdings selten der Fall. Ich werde Deine Lösung heute Testen und werde Berichten.

Welches Buch ist nun für C bzw. C++ zu empfehlen, der Wissenshunger ist groß und die 14-Tage Urlaub sollten bereits teilweise dazu genutzt werden um etwas zu lernen!

Jürgen
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Office Deployment Tool mit einer Batchdatei per GPO Shutdown Skript ausführen (3)

Frage von McBainHH zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Schleife für Batchdatei (4)

Frage von mrcljnff zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...