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

Mitglied: Gloem

Gloem (Level 1) - Jetzt verbinden

22.01.2006, aktualisiert 23.01.2006, 5820 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
String in Datei umbennen
gelöst Frage von DarkatohmBatch & Shell3 Kommentare

Hallo zusammen, ich versuche ein Batch-Skript zu schreiben, bei dem ich einen String in einer Datei umbenennen kann. Hierzu ...

Batch & Shell

Text Datei bis bestimmten String kopieren und auslagern

Frage von SKBadoxBatch & Shell4 Kommentare

Hallo zusammen, wie der Titel schon sagt suche ich nach einem .bat Skript dass vom Anfang der .txt Datei ...

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 ...

Java

Von Delphi String zu Java String

Frage von GreenDinoJava1 Kommentar

Hallo zusammen! Ich bin dabei Delphicode in Javacode zu übertragen. Frage: ist '<text>' in Delphi equivalent zu "<text>" in ...

Neue Wissensbeiträge
Humor (lol)
Und wie seid Ihr gegen Cyberattacken gewappnet?
Information von DerWoWusste vor 18 StundenHumor (lol)4 Kommentare

aber wo ist der Hammer? :-)

Sicherheit
Ein weiterer Microsoft-Stirnklatscher
Information von DerWoWusste vor 1 TagSicherheit7 Kommentare

Habe gerade einen Artikel zu einem Sicherheitsproblem gefunden, welches mir zu seiner Zeit (gepatcht 2015) wohl durchgerutscht ist. Es ...

Windows 10
Upgradepfade Windows 10 LTSC
Erfahrungsbericht von Datenreise vor 1 TagWindows 10

Nur eine kurze Info, für diejenigen, die es interessiert, da es hierzu im Netz aus nachvollziehbaren Gründen nicht allzu ...

Administrator.de Feedback
Wartungsarbeiten heute Nacht (Update)
Information von Frank vor 1 TagAdministrator.de Feedback10 Kommentare

Hallo User, durch Umbauarbeiten in unserem Rechenzentrum (am Backbone) kann es heute Nacht (14-15.01.2019) zu kurzen Ausfällen unserer Seite ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 - kein Boot mehr nach Domänenaustritt
gelöst Frage von Ghost108Windows 1025 Kommentare

Hallo zusammen, habe hier eine Windows 10 Maschine, die ich gerne aus der Domäne austreten lassen möchte. Nach Austritt ...

Windows 10
Windows 10 1803 - nicht identifiziertes Netzwerk - kein Login an Domäne möglich
Frage von Tomy389Windows 1021 Kommentare

Hallo Zusammen, ich hoffe zu dem Thema gibt es nicht schon einen Thread aber ich sollte eigentlich schon alles ...

Exchange Server
Microsoft Exchange Ser ver 2016 CU 8 auf den neuesten Stand bringen
gelöst Frage von Hendrik2586Exchange Server20 Kommentare

Hallo an euch alle. :) Kurze Frage. Ich habe hier einen Exchange Server wie o.g. Problem ist das wir ...

Microsoft
SFirm 4.0 auf Terminalserver startet für jeden angemeldeten Benutzer diverse Dienste
Frage von Frank84Microsoft17 Kommentare

Hallo zusammen, wir verwenden Sfirm 4.0 auf einem Terminalserver (der SQL Server ist auf einem separaten Server), das Problem ...