Top-Themen

Aktuelle Themen (A bis Z)

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
GELÖST

aus Dateien Strings auslesen

Frage Entwicklung Batch & Shell

Mitglied: Gloem

Gloem (Level 1) - Jetzt verbinden

22.01.2006, aktualisiert 23.01.2006, 5784 Aufrufe, 5 Kommentare

Hallo,

ich soll mehrere Dateien georeferenzieren. Die Infos dazu stehen in Info-Dateien die bis auf die Endung wie die Rasterdatei heißen. Für die Georefenzierung werden 2 Strings aus der Info-Datei benötigt und einige Standardwerte hinzugefügt.

Der Aufbau einer Info-Datei[5050.ifo] (vereinfacht):

NW-Ecke: 111111111 22222222
NO-Ecke: 33333333 444444444
SW-Ecke: 55555555 666666666
SO-Ecke: 77777777 888888888

Die neu zu erstellende Datei muß folgendermaßen aussehen[5050.tfw]:
22222222
0
0
-88888888


Das ganze soll für alle Dateien in einem Verzeichniss erfolgen. Ich gehe davon aus, das ich dafür eine For /r Schleife durch alle ifo-Dateien brauche und hieraus eine Prozedur aufrufen muss, die durch alle Strings geht. (Oder kann man Schleifen doch irgendwie schachteln).
Wie kann ich auf den dritten Wert in einer Zeile zugreifen? Wenn ich das probeweise mit einer Datei mache, kann ich immer nur auf den ersten Wert zugreifen
Mitglied: Biber
22.01.2006 um 21:32 Uhr
Moin Gloem,

die Schwierigkeit ist nicht in den FOR..IN..DO-Anweisungen, die sind in diesem Fall eher einfach.

Ein undokumentiertes CMD-Feature bzw. CMD-Verhalten aus meinem geplanten Batch-Tut IV muss ich vorziehen wegen Dir: Es lassen sich eigentlich die Ziffern 0-5 nicht per ECHO ausgeben (sind für die CMD.exe ja die Kanäle 1=CON.. bis 5=STDAUX... und 0 ist ein M$-Bug).

Also, Skizze:
01.
::---snipp ifo2tfw.bat 
02.
@echo off & setlocal 
03.
for %%a in (*.ifo) do (  
04.
 echo aus Datei %%a: 
05.
 for /F "tokens=3 skip=2" %%i in ('find "NW-Ecke" %%a') do @echo %%i >%%~na.tfw 
06.
 echo ^0>>%%~na.tfw 
07.
 echo ^0>>%%~na.tfw 
08.
 for /F "tokens=3 skip=2" %%i in ('find "SO-Ecke" %%a') do @echo %%i >%%~na.tfw>>%%~na.tfw 
09.
10.
::---snapp ifo2tfw.bat
-->Ergebnis z.B. eine 5050.tfw mit dem Inhalt:
22222222
0
0
888888888

HTH Biber
Bitte warten ..
Mitglied: Gloem
23.01.2006 um 11:37 Uhr
Hallo,

super, danke für die Hilfe, hat hingehauen.

Hab jetzt aber noch ein anderes Problem:

Den Skalierungsfaktor les ich auch aus der Ifo-Datei aus. Leider hat er die Form 2,50m. Da die automatische Georeferenzierung damit aber nix anfangen kann muss ich es in 2,500 umwandeln.
Kann mir jemand ein zeichen-replace-Befehl nennen wenn es sowas in Batch gibt
Bitte warten ..
Mitglied: Biber
23.01.2006 um 13:25 Uhr
Moin Gloem,

habe die Frage nur zum Teil verstanden. Nachfragen:
a) wie identifizierst Du denn die "Skalierungsfaktor"-Zeile
b) wie sieht die Zeile aus? Oder auf bätchisch: welches Token davon brauchst Du?
c) Dein Beispiel "Vorher 2,50m -> Nachher 2,500" ... ööhm.., bei "Vorher" steht IMMER "m" am Ende und wird IMMER durch die Ziffer "0" ersetzt? Oder welche Fälle/Use Cases gibt es noch?

Grüße Biber
Bitte warten ..
Mitglied: Gloem
23.01.2006 um 13:55 Uhr
Also, ich hab die so ausgelesen wie die Koordinaten weiter oben, sprich in %%i ist 2.50m.
Das m muss hierbei IMMER durch eine 0 ersetzt werden.
Bitte warten ..
Mitglied: Biber
23.01.2006 um 15:47 Uhr
Also dann, Gloem,

für das Wechseln/Ersetzen ist es nötig, dass dieser Wert in einer "echten" Variablen zwischengespeichert wird.
Bisher steht der Wert ja in einer so genannten Zählvariablen (%%i) - eine Zählvariable kann ich nicht manipulieren.

Also ersetze in der Zeile, die bisher den "Skalierungsfaktor" liefert (das waren meine Fragen a) und b)):

for /F "tokens=3 skip=2" %%i in ('find "Skalierung" %%a') do @echo %%i >%%~na.tfw
das "DO @echo %%i" durch einen Unteraufruf ....DO Call :WriteSkaFaktor %%i %%~na.tfw
for /F "tokens=3 skip=2" %%i in ('find "Skalierung" %%a') DO (
Call :WriteSkaFaktor %%i %%~na.tfw)


In dem angepassten Batchschnipsel sieht es dann in etwa so aus
01.
::---snipp ifo2tfw.bat  
02.
@echo off & setlocal  
03.
for %%a in (*.ifo) do (  
04.
echo aus Datei %%a:  
05.
for /F "tokens=3 skip=2" %%i in ('find "NW-Ecke" %%a') do @echo %%i >%%~na.tfw  
06.
<b>for /F "tokens=3 skip=2" %%i in ('find "Skalierung" %%a') DO Call :WriteSkaFaktor %%i  %%~na.tfw</b> 
07.
REM echo ^0>>%%~na.tfw  
08.
echo ^0>>%%~na.tfw  
09.
for /F "tokens=3 skip=2" %%i in ('find "SO-Ecke" %%a') do @echo %%i >>%%~na.tfw  
10.
11.
:WriteSkaFaktor 
12.
Set "Scale=%1" 
13.
Set Scale=%Scale:m=0%" 
14.
Echo %Scale% >>%2 
15.
goto :eof 
16.
::---snapp ifo2tfw.bat 
HTH Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bestimmten Teil eines String aus einer XML-Datei auslesen
gelöst Frage von Dnis822Batch & Shell13 Kommentare

Hallo zusammen, ich stehe vor folgendem Problem: Ich habe eine XML-Datei die bspw. so aussieht: <Url1> <Directory>C:\MeinVerzeichnis\test\</Directory> 'Name' und ...

Batch & Shell
String Zeichenpaare auslesen und bearbeiten
Frage von ahstaxBatch & Shell6 Kommentare

Moin, ich möchte gerne einen String der Form "41004800", der beliebig lang sein kann, in Zeichenpaare aufteilen, also in ...

Batch & Shell
String aus Spalte in csv auslesen und ersetzen
Frage von mIsSteRBatch & Shell4 Kommentare

Hallo, meine aktuelle Frage bezieht sich auf diese Frage von Dienstag. Ich muss nun eine csv auslesen und dort ...

Batch & Shell
Schreiben eines Strings mit Leerzeichen in eine Datei
gelöst Frage von c20082005Batch & Shell6 Kommentare

Hallo, nach langem Rum- und Ausprobieren möchte ich Euch um Hilfe bitten für folgendes Problem: Ich möchte mit einer ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 12 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 16 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...