tjanosch
Goto Top

Raute in Textdatei automatisch entfernen

Hallo

Ich habe ein kleines Problem.
Ich habe eine Textdatei in der Rauten stehen.
Diese möchte ich per CMD-Datei (Batch) autom. entfernen lassen, ist das möglich?
Vielen Dank für eure Antworten

MfG
Thomas

Content-ID: 73069

Url: https://administrator.de/forum/raute-in-textdatei-automatisch-entfernen-73069.html

Ausgedruckt am: 23.04.2025 um 12:04 Uhr

8644
8644 08.11.2007 um 12:41:49 Uhr
Goto Top
Hi,

wenn es nur eine Datei ist, brauchst du keine batch! Datei im Editor öffnen # durch [LEER] ersetzen, auf "Alle Ersetzen" klicken, fertig.

Psycho
tjanosch
tjanosch 08.11.2007 um 12:45:13 Uhr
Goto Top
Das ist klar.
Es wäre aber nicht schlecht da dies eine Lieferscheindatei ist die in eine Faktura importiert wird,
und der User das ja mal vergessen kann.
D.h. es sollte automatisch funktionieren.
ianuti
ianuti 08.11.2007 um 12:59:57 Uhr
Goto Top
Wo kommt die Text-Datei her ?
Bzw. Wie wird diese Datei erzeugt ?
Vielleicht kann man bereits eine Stufe vorher das Problem abfangen ?
Biber
Biber 08.11.2007, aktualisiert am 18.10.2012 um 18:32:40 Uhr
Goto Top
Moin tjanosch,

der Grund für die vielen Rückfragen und die scheinbar zögerliche handwerkliche Unterstützung:

1) Batch-Befehle arbeiten ZEILENweise ganz brauchbar - bei einem ZEICHEN-Ersetzen ist eher VBSkript o.ä. angesagt.
Ein aktuelles und auch bei Dir passendes bastla-Beispiel hier:Formatierung eines Textdokumentes wie ein Roboter.

2) Wenn denn nun die eine Datei eine gewollte Exportschnittstelle (Lieferscheindatei) und das andere Programm die Importseite (Faktura) sein soll und Du in dieses -ich zitiere- "automatisch funktionierende" System eine halbmanuelle Manipulation reindrückst, dann bist ab sofort Du die Fehlerquelle Nr.1 bzw. der Schuldige, wenn mal was nicht funktioniert.

Deshalb hat ianuti vollkommen recht - entweder muss sich die Export-Seite mal bewegen und keine "#" mehr rausschieben oder die Import-Seite muss diese "#" schlucken lernen.

Niemals darfst Du den "gleichen" Dateninhalt in zwei Systemen direkt in einer Im/Exportdatei manipulieren.

Grüße
Biber
tjanosch
tjanosch 08.11.2007 um 22:03:39 Uhr
Goto Top
Hallo

Ich weiss das man das normal nicht machen soll, aber aus verschiedenen Gründen will ich das.
Weiss jemand ob und wie das in einer cmd datei geht?
Vielen Dank.

Thomas
Biber
Biber 09.11.2007 um 09:30:05 Uhr
Goto Top
Moin tjanosch,

hast Du den Beitrag gelesen, auf den ich oben verwiesen habe?
Und hältst Du dortige Lösung auch für übertragbar auf Dein Problem?
Oder darfst Du kein VBS einsetzen?

Grüße
Biber
ianuti
ianuti 09.11.2007 um 10:14:28 Uhr
Goto Top
Also , rein mit Batch geht es nicht , aber mit anderen Scripten, wie Perl oder PHP ö.ä. , kann man es machen.
Ala :


...
c:\binpath\php.exe c:\otherpath\datei.php
..


Dazu brauchst du natürlich den Interpreter (hier im Beispiel PHP)
Und die "datei.php" musst duch auch noch schreiben (oder schreiben lassen).

In PHP bin ich relativ fitt, mit präziseren Angaben kann ich dir das Script schreiben.
bastla
bastla 09.11.2007 um 13:32:11 Uhr
Goto Top
Hallo tjanosch!

Um das Ganze abzukürzen: Der folgenden Batch (inkl VBS) sollte alle Rauten ersatzlos entfernen:
@echo off & setlocal
set "Ein=D:\MitRauten.txt"  
set "Aus=D:\OhneRauten.txt"  

set "Cvt=%temp%\ConvSC.vbs"  
echo Set fso=CreateObject("Scripting.FileSystemObject"):fso.OpenTextFile("%Aus%",2,True).Write Replace(fso.OpenTextFile("%Ein%",1).ReadAll,"#","")>"%Cvt%"  
cscript //nologo "%Cvt%"  
del "%Cvt%"  

Solltest Du schon kein VBS einsetzen wollen/dürfen, könnte ich mir einen Hinweis auf "sed" vermutlich auch sparen ...

Grüße
bastla
tjanosch
tjanosch 09.11.2007 um 14:09:18 Uhr
Goto Top
Vielen Dank

so funtkionert es.
Jetzt habe ich aber gemerkt das ich einen Fehler gemacht habe, ich will nicht alle Rauten ersetzten sondern alle Anführungszeichen.
Geht das überhaupt? Weil die Anführungszeichen ja immer am Anfang und am Ende stehen.
Vielen Dank.

Gruss
Thomas
Biber
Biber 09.11.2007 um 14:31:09 Uhr
Goto Top
die Anführungszeichen ja immer am Anfang und am Ende stehen.
Am Anfang und Ende der Lieferscheinnummer?
Am Anfang und Ende einer Zeile?
Am Anfang eines Tages?
Am Ende der Welt?

Grüße
Biber
tjanosch
tjanosch 09.11.2007 um 14:48:25 Uhr
Goto Top
Sorry etwas schlecht ausgedrückt.

echo Set fso=CreateObject("Scripting.FileSystemObject"):fso.OpenTextFile("%Aus%",2,True).Write Replace(fso.OpenTextFile("%Ein%",1).ReadAll,"#","")>"%Cvt%"

In diesem Bereich "#" wird ja die Raute ausgetauscht.
Ich muss aber ein " austauschen und nicht eine Raute.
bastla
bastla 09.11.2007 um 14:53:10 Uhr
Goto Top
Hallo tjanosch!

Dann eben
echo Set fso=CreateObject("Scripting.FileSystemObject"):fso.OpenTextFile("%Aus%",2,True).Write Replace(fso.OpenTextFile("%Ein%",1).ReadAll,Chr(34),"")>"%Cvt%"  

Grüße
bastla
tjanosch
tjanosch 12.11.2007 um 21:28:13 Uhr
Goto Top
Hallo bastla

Vielen Vielen Dank.
So passt es perfekt.

Gruss
Thomas