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 Zeichenketten aus 2 Dateien in eine Zeile einer Neuen schreiben

Mitglied: jschikora

jschikora (Level 1) - Jetzt verbinden

03.03.2011 um 10:49 Uhr, 2573 Aufrufe, 7 Kommentare

Hallo Zusammen,

ich habe jetzt schon eine Weile selber mit FOR-Schleifen gebastelt, komme aber irgendwie auf keinen grünen Zweig. Vielleicht könnt ihr mir ja helfen.

Ich habe folgende Ausgangssituation. Es existieren zwei .txt-Dateien die zum Beispiel so aussehen:

test1.txt
01.
3  
02.
Kd_Am  
03.
Kd_Cs  
04.
Kd_U  
05.
time = no  
06.
5  
07.
2.87e+001 6.56e+004 2.86e-001  
08.
2.33e+001 2.03e+001 1.46e-001  
09.
2.35e+001 2.17e+005 1.22e-001  
10.
2.78e+001 5.24e+002 1.45e-001  
11.
1.47e+001 1.56e+005 2.32e-001
test2.txt
01.
8  
02.
pH 	DIC 	IS 	Al 	Ca 	Am 		Cs		U  
03.
7.12	97.22 	128.17 	7.49 	74.01	2.21e-011	4.08e-006	1.16e-013  
04.
7.93 	226.45	229.33	5.11 	63.22	3.33e-008	0.02		0.00 
05.
7.39 	180.75	212.33	1.56 	23.80	0.00   		1.36e-009	3.15e-005  
06.
7.01	255.50	182.97 	0.64 	48.82	2.21e-014  	0.00		9.88e-010  
07.
7.614 	161.72	348.16	0.38 	106.91	4.27e-007   	3.189e-013	1.77e-006 
Als Ergebnis hätte ich gerne, dass die Zahlenfolge ab Zeile 3 der test2.txt und die Zahlen ab Zeile 7 von test1.txt ausgelesen werden und jeweils in einer Zeile einer neuen Datei (z.B. gesamt.txt) zusammengefügt werden.
Die sollte dann so aussehen:

gesamt.txt
01.
7.12	97.22 	128.17 	7.49 	74.01	2.21e-011	4.08e-006	1.16e-013  2.87e+001 6.56e+004 2.86e-001 
02.
7.93 	226.45	229.33	5.11 	63.22	3.33e-008	0.02		0.00  2.33e+001 2.03e+001 1.46e-001  
03.
...
Schonmal vielen Dank im vorraus.

Johannes
Mitglied: miniversum
03.03.2011 um 12:44 Uhr
Vorausgesetzt du hast in beiden Dateien immer die Gleiche anzahl an Zahlenreihen dann würde es vom Prinzip her so gehen:
1. Auslesen wie viele Zeilen es sind -> findstr /n und zahl rausholen mit einer For schleife
2. Zeilenanzahl-2=Datensatzanzahl (Bei test2.txt)
3. Mit diesem konstrukt kannst du immer die gewünschte relevante zeile auslesen:
set "x="
FOR /F "skip=2 delims=" %i in (test2.txt) do in not defined x set x=%%i
In x steht danach die 3. Zeile (durch das skip=2)
4. Jetzt wird das ganze verschachtelt. du zählst von 1 bis anzahl der datensätze durch, nimmst diese zählvariable - 1 als wert für skip und liest mit dem obigen Beispiel die test1.txt und test2.txt aus. Die Ergebnisse hänngst du zusammen und schreibst sie in gesamt.txt
Zu beachten ist:
a. der wert für skip muss halt den offset von 2 bzw. 6 aufaddiert bekommen und
b. skip=0 geht nicht (was ja nicht vorkommen sollte
Bitte warten ..
Mitglied: jschikora
03.03.2011 um 15:06 Uhr
Also ich habe jetzt mit Hilfe deiner Tipps folgende Code-Zeilen zusammengeschrieben. Irgendwo muss ich aber noch einen Fehler haben, da ich das Ganze noch nicht zum laufen bekomme.

01.
@echo off & setlocal 
02.
set counter=0 
03.
set /p "daten=Anzahl der Datensaetze eingeben:" 
04.
 
05.
FOR %%i in (1,1,%daten%) do ( 
06.
	 
07.
	set /a a=%%i+1 
08.
	set /a b=%%i+5 
09.
 
10.
	set "x=" 
11.
	FOR /F "skip=%a% " %%j in (test2.txt) do in not defined x set x=%%j 
12.
	 
13.
	set "y=" 
14.
	FOR /F "skip=%b% " %%k in (test1.txt) do in not defined y set y=%%k 
15.
	 
16.
	echo %x% %y% >> gesamt.txt 
17.
	 
18.
	set /a counter=counter+1 
19.
	if %counter% equ %daten% goto ende 
20.
21.
 
22.
:ende 
23.
pause
Bitte warten ..
Mitglied: pieh-ejdsch
03.03.2011 um 15:08 Uhr
moin jschikora,

sofern keine Doppelpunkte am Zeilenanfang stehen könnte es so gehen.
01.
set "Datei1=D:\test1.txt" 
02.
set "Datei2=D:\test2.txt" 
03.
set "Sprung1=6" 
04.
set "Sprung2=2" 
05.
set "Ausgabe=D:\Ausgabe.txt" 
06.
 
07.
type nul>"%Ausgabe%" 
08.
for /f "tokens=1* delims=:" %%i in ('more +%Sprung1% "%Datei1%"^|findstr /n "^"') do ( 
09.
	for /f "tokens=1* delims=:" %%k in ('more +%Sprung2% "%Datei2%"^|findstr /n "^"^|findstr /b "%%i:"') do >>"%Ausgabe%" echo %%j  %%l 
10.
)
Gruß Phil
Bitte warten ..
Mitglied: jschikora
03.03.2011 um 15:29 Uhr
Moin Phil,

ich habe jetzt die beiden Dateien in einem Ordner Test auf meinem Desktop und wenn ich deinen Code als Batch-Datei ausführe erhalte ich folgenden Fehler: " Auf C:\Dokumente und Einstellungen\js5874\Desktop\Test\+ kann nicht zugegriffen werden"
Bitte warten ..
Mitglied: pieh-ejdsch
03.03.2011 um 15:39 Uhr
ups ein kleiner Schreibfehler von mir.
schau mal in die zweite Forschleife - da steht %Spung2% aber es sollte %Sprung2% heissen.

Gruß Phil
Bitte warten ..
Mitglied: jschikora
03.03.2011 um 15:47 Uhr
super... jetzt funktionierts

vielen dank
johannes
Bitte warten ..
Mitglied: miniversum
03.03.2011 um 18:28 Uhr
Jetzt mal vom drüber schauen her fällt mir folgendes auf:
- Den counter brauchst du eigentlich nicht, da die schleife sowieso aufhört wenn alle durch sind.
- Bei den beiden for schleifen zum auslesen der Dateien würde ich "skip=%a% delims=" benutzen damit die Leerzeichen nicht als trennzeichen benutzt werden
- Wenn du die eignetliche Funktion in eine Unterprozedur packst und in mit der for schleife in Zeile 5 per call aufrufst klappt das mit dem set /a, bzw. die auflösung der variabeln.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Bestimmte Zeile aus mehreren Dateien in eine neue Datei schreiben

gelöst Frage von Oggy76Batch & Shell5 Kommentare

Hallo zusammen, meine Kenntnisse in Sachen batch/shell sind ehr auf Anfängerniveau zu sehen. Grund -basics im CMD-Prompt sind vorhanden, ...

Linux Tools

In Bash durch jede Zeile einer Datei gehen und Keywords oder neue Zeile in andere Datei schreiben

gelöst Frage von Jens4everLinux Tools2 Kommentare

Moin zusammen, könnt ihr mir bitte bei dieser Sache helfen? Ich habe eine Textdatei data.txt. Ich möchte durch jede ...

Batch & Shell

Mit Batch-Datei eine Datei lesen, Zeilen ändern und als neue Datei schreiben

gelöst Frage von GeoSemBatch & Shell20 Kommentare

Hallo Ich versuche nun schon seit einiger Zeit das "kleine" Script (unter Windows 8) zum laufen zu bringen - ...

Batch & Shell

Powershell Export memberof jede Gruppe in neue Zeile schreiben

gelöst Frage von KangaroojackBatch & Shell12 Kommentare

Hallo Leute, zu Dokumentationszwecken muss ich bestimmte OU's mit Benutzerobjekten und deren Gruppenmitgliedschaften auslesen. Mein bisheriges Arbeitsmittel der Wahl ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 17 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 22 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...