dipps
Goto Top

in einer bestehenden TXT Datei an die zeilen enden was ranhängen

in einer bestehenden TXT Datei an die zeilen enden was ranhängen

Hallo,

ich habe ein TXT Datei mit vielen Zeilen die so ca aussieht:

Maier,Max
Mueller,Hannes
...

nun soll am ende jederZeile noch Angehangen werden:

...,MaiMa
...,MueHa

also die ersten drei Buchstaben vom Nachnamen und die ersten zwei Buchstaben vom Vornamen

weiss jemand wie ich das in einer Token schleife am besten realiesiern kann?

Vielen Dank schon jetzt einmal.

Content-ID: 68108

Url: https://administrator.de/contentid/68108

Ausgedruckt am: 25.11.2024 um 21:11 Uhr

rubberbear
rubberbear 07.09.2007 um 07:16:05 Uhr
Goto Top
Hi,
versuch es mal mit einem tool das die tastenkombinationen macht ein Macro im Word oder autoit
da ich nicht der macromensch bin hier ein kleines Autoit script
; ----------------------------------------------------------------------------
;
; AutoIt Version: 3.1.0
; Author:         A.N.Other <myemail@nowhere.com>
;
; Script Function:
;	Template AutoIt script.
;
; ----------------------------------------------------------------------------

; Script Start - Add your code below here

WinWaitActive ("C:\Dokumente und Einstellungen\kuehn_b\Desktop\autoit test.txt - Notepad2")  
	Send ("^{HOME}")  
	$i = 0
	While $i <= di
		$i = $i + 1
			Send ("+{RIGHT 3}")  
			Send ("^c")  
			Send ("{END}")  
			Send (",")  
			Send ("^v")  
			Send ("^{LEFT 3}")  
			Send ("+{RIGHT 2}")  
			Send ("^c")  
			Send ("{END}")  
			Send ("^v")  
			Send ("{DOWN}")  
			send ("{HOME}")  
	WEnd
in der Zeile
WinWaitActive ("C:\Dokumente und Einstellungen\face-smile\Desktop\autoit test.txt - Notepad2")
muss zwichen den Anführungszeichen das stehen, was oben im editor steht
und in der Zeile
While $i <= XXX
muss an die stelle der drei x die zahl deiner Zeilen im TXT.file -1
viel spaß
Biber
Biber 07.09.2007 um 07:38:27 Uhr
Goto Top
Moin Dipps,

mit Batch und einer FOR/F-Anweisung wäre ein möglicher Ansatz:
[zum Warmwerden am CMD-Prompt]:
for /f "tokens=1,* delims=," %i in (namen.txt) do @echo [Name: %i], [Vorname: %j]  

Die beiden vorhandenen Token "name" und "Vorname" plus das abgeleitete neue dritte Token würde ich aber in eine neue Datei schreiben lassen. Schon aus dem Grund, dass der Originaldatei nichts passiert, bis wirklich ein Script -egal ob AutoIt oder VBS oder Batch- auch läuft.

Eine erste ungetestete Batch-Skizze wäre dann:
::----Snipp Add3rdToken.bat---
@echo off & setlocal
for /f "tokens=1,* delims=," %%i in (tempxx.txt) do call :ProcessLine "%%~i" "%%~j"  
Goto :eof

:ProcessLine Para1=Name, Para2=Vorname
Set "name=%~1"  
Set "vorname=%~2"  
Echo %~1,%~2,%name:~0,3%%vorname:~0,2%
::----Snipp Add3rdToken.bat---

Wie gesagt, nicht getestet.

Wenn "Add3rdToken" auf dem Bildschirm klappt, dann alles umleiten in eine neue Textdatei. Also "Add3rdToken>NeueNamen.txt"

Grüße
Biber
Dipps
Dipps 07.09.2007 um 07:43:30 Uhr
Goto Top
in VB habe ich keine Ahnung der sagt mir bloß immer das WinWaitActiv Funktion nicht defieniert ist
rubberbear
rubberbear 07.09.2007 um 07:49:22 Uhr
Goto Top
Hi,
das ist kein VB
sondern Autoit,
http://www.autoitscript.com/autoit3/
ein zusätzliches Tool, aber durchaus hin und wieder sehr sinnvoll
Dipps
Dipps 07.09.2007 um 07:50:58 Uhr
Goto Top
Ja es funktioniert soweit nun soll es aber noch an das ende derzeile in der datei ran gehangen werden
Dipps
Dipps 07.09.2007 um 08:06:23 Uhr
Goto Top
gibs eventuell auch noch die möglichkeit die zusammen fassung also das 3. token alles klein zu schreiben?
Biber
Biber 07.09.2007 um 08:14:23 Uhr
Goto Top
Moin Dipps,

>also das 3. token alles klein zu schreiben?
Batch bietet keine ToUpper()/ToLower()-Funktionalität an.
Dann ginge es schneller, alle 5 Zeilen nochmal neu als 5zeiligen VBS-Schnipsel zu schreiben.

Aber vorher die Fragen nach dem Nutzen:
  • wieso würde das denn für die weitere Verarbeitung einen Unterschied machen, ob es klein oder gemischt geschrieben ist?
  • wie oft brauchst Du den Schnipsel denn - einmalig oder jeden Dienstag morgen?

Grüße
Biber
Dipps
Dipps 07.09.2007 um 09:12:20 Uhr
Goto Top
nagut ist ni so schlimm trozdem vielen dank noch mal
Dipps
Dipps 07.09.2007 um 09:59:13 Uhr
Goto Top
ich habe noch was! kannst du mir noch sagen wie ich ein zufälliges wort generieren kann ein PW so zusagen das darf aus ABCD...und Ziffern bestehen und es sollte möglichst nur einmal auftreten und 6 zeichen lang
Biber
Biber 07.09.2007 um 10:36:14 Uhr
Goto Top
Moin Dipps,

das kannst Du relativ simpel zusammenbraten mit der %random%-Funktion.

Mimik wäre in etwa
  • Setlocal enableDelayedExpansion
  • Gesamtheit aller erlaubten Zeichen festlegen
set "text=abcdefghigklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"  
  • einen Zufallswert im Bereich 0....Länge_aller_erlaubten_Zeichen erzeugen
set /a x=%random% % 60 
  • wenn bei diesem Wert für die Variable %x% z.B. 13 herauskam, dann liefert der folgende Code das 13. Zeichen ="m".
Set Zufallszeichen=%text:~!x!,1%

So kannst Du Zeichen für Zeichen zusummenstoppeln oder das auch einen Batch machen lassen.
Aber wenn Du damit nicht zurechtkommst, dann mach bitte dafür einen neuen Beitrag auf.
Und setz diesen hier auf "Beantwortet".

Grüße
Biber