Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  txt Datei ändern und speichern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  txt Datei ändern und speichern (1122 mal gelesen)
Garry
Mitglied
Techniker/Konstrukteur


Sehen Sie sich das Profil von Garry an!   Senden Sie eine Private Message an Garry  Schreiben Sie einen Gästebucheintrag für Garry

Beiträge: 683
Registriert: 05.03.2003

erstellt am: 08. Dez. 2005 12:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

jetzt können mir nur noch (Hoffnetlich) die Leute der Programmiertechnik helfen.

Habe eine *.txt Datei deren inhalt sieht so aus.

'eintrag1','zahlenwert1',eintrag2'
'eintrag3','zahlenwert2',eintrag4'
'eintrag5','zahlenwert3',eintrag6'
'eintrag7','zahlenwert4',eintrag8'
'eintrag9','zahlenwert5',eintrag10'
usw.

mein Problem ist ich muss in den Raum Zahlenwert vor die Zahl den Text POS- einbringen.
z.b.
'eintrag1','POS-zahlenwert1',eintrag2'
'eintrag3','POS-zahlenwert2',eintrag4'
'eintrag5','POS-zahlenwert3',eintrag6'
'eintrag7','POS-zahlenwert4',eintrag8'
'eintrag9','POS-zahlenwert5',eintrag10'
usw.

da ich hier kein Excel oder sonstiges Prog zwischenschalten frage ich hier mal nach,
ob sowas mit einem Skript ,VB oder *.BAT(wäre mir am Liebsten) datei möglich wäre.
Diesen eintrag zu Tätigen und das ganze wieder unterm gleichen namen zu speicher.

Ich lese aus einem CAD-Prog. die Atribute aus und diese werden in 2 *.TXT datei geschrieben,
und davon sollte eine beim Zahlenwert der unterschiedlich ist den Vorsatz POS- bekommen bevor
sie von einem 2unterschiedlichen Stücklisten-Programmen wieder eingelesen werden.

vielleicht Erbarmt sich jemand und kann mir Helfen.

gruß

Garry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 08. Dez. 2005 13:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Garry 10 Unities + Antwort hilfreich

Hi Garry,

manche Texteditoren (zB VIM www.vim.org) 'können' REGEXP
da sähe das ganz einfach so aus für die erste Fundstelle:

:%s/,'/,'POS-/

Ich geh' mal davon aus, das fehlende führende Hochkomma ist ein Schreibfehler,
wenn nicht, gehts doch 'normal' im Wordpad;-)

Oder als Makro und ohne RE;-)

Code:

Sub asdf()
    Dim s0$, s1
    Open "o:\test.txt" For Input As #1
    Open "o:\test1.txt" For Output As #2
    While Not EOF(1)
        Line Input #1, s0
        s1 = Split(s0, ",'")
        s1(1) = "POS-" & s1(1)
        Print #2, Join(s1, ",'")
    Wend
    Close #1
    Close #2
End Sub

Gruss Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Garry
Mitglied
Techniker/Konstrukteur


Sehen Sie sich das Profil von Garry an!   Senden Sie eine Private Message an Garry  Schreiben Sie einen Gästebucheintrag für Garry

Beiträge: 683
Registriert: 05.03.2003

erstellt am: 08. Dez. 2005 13:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von startrek:
Hi Garry,

manche Texteditoren (zB VIM www.vim.org)  'können' REGEXP
da sähe das ganz einfach so aus für die erste Fundstelle:

:%s/,'/,'POS-/

Ich geh' mal davon aus, das fehlende führende Hochkomma ist ein Schreibfehler,
wenn nicht, gehts doch 'normal' im Wordpad;-)

Oder als Makro und ohne RE;-)

Code:

Sub asdf()
    Dim s0$, s1
    Open "o:\test.txt" For Input As #1
    Open "o:\test1.txt" For Output As #2
    While Not EOF(1)
        Line Input #1, s0
        s1 = Split(s0, ",'")
        s1(1) = "POS-" & s1(1)
        Print #2, Join(s1, ",'")
    Wend
    Close #1
    Close #2
End Sub

Gruss Nancy

Hallo Nancy,

das führende Hochkomma ist kein Schreibfehler, die Ausgabe-Datei schaut genauso aus.
Ich kann kein anderes Programm starten nur ein Skript(wäre am Einfachsten) eine Batch datei oder ein Makro wenn man dies auch Anschucken kann wie eine Batch / Skript DAtei, da das ganze Automatisch im Hintergrund ablaufen soll.
Kann man ein Makro so abspeichern das es, wenn es aufgerufen wird Startet und Abläuft.


gruß

Garry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Garry
Mitglied
Techniker/Konstrukteur


Sehen Sie sich das Profil von Garry an!   Senden Sie eine Private Message an Garry  Schreiben Sie einen Gästebucheintrag für Garry

Beiträge: 683
Registriert: 05.03.2003

WIN10 (64bit), SWX 2019 Premium SP5, PDM-Pro2019 , XEON W-3225-3,7GHz 128GB, NVidia RT6000 SpacePilot Pro, SSD500GB Office 365

erstellt am: 08. Dez. 2005 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hy,

natürlich ist das Fehlende hochkamma mitten im Text ein Schreibfehler.

Sorry ,

wer richtig liest ist im Vorteil.

Garry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 08. Dez. 2005 23:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Garry 10 Unities + Antwort hilfreich

> Kann man ein Makro so abspeichern das es,
> wenn es aufgerufen wird Startet und Abläuft.

Denke schon;-)

Gugge mal hier
Du brauchst natürlich eine Application dazu, welche VBA unterstützt.
Das kann Autocad sein, Excel oder Word, oder auch Corel Draw oder weiss-der-Geier ...
Einfach Alt+F11 drücken, Einfügen > Modul, in das Codefenster 'Modul1' den code kopieren und ausführen
mit F5 oder Alt + F8 je nachdem unter welcher Umgebung

Rein theoretisch [mangels Nichtwissen] müsste auch sowas gehen, wenn du den code kopierst und in einem
Texteditor einfügst und als *.vbs abspeicherst [oder die *.txt in *.vbs umbenennst]
Bin mir mit vb-script aber nicht sicher, kann sein, da war was anders mit sub/end sub und dem Dim as ...,
jedenfalls müssteste dann die *.vbs nur noch via Doppelklick im Explorer starten.

Aber Holzauge sei wachsam, trau' nur vbs-files die du selbst erstellt oder gefälscht hast ... oder wo du zumindest annähernd den Quellcode 'lesend' verstehst;-)

lg Nancy

       

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Ehrenmitglied V.I.P. h.c.
Arbeiter ツ



Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

what i think?
I think, no skill

erstellt am: 13. Dez. 2005 21:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Garry 10 Unities + Antwort hilfreich

:-) Holzauge und wachsam :-)
Code:
'Pos-zahlen.vbs
'wandelt *.txt in pos-*.txt und ersetzt 'zahlen*' in 'POS-zahlen*'
'einfach per drag and drop - alt. send to

Option Explicit

Dim WSHShell, fso, FileIn, FileOut
Dim Datei, Zielver, Text, Txt, i, arrSort, arrTest(), oArgs

Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso      = WScript.CreateObject("Scripting.FileSystemObject")
set oArgs    = Wscript.Arguments

' Falls ein Argument übergeben wurde, sollte es einen Dateinamen enthalten
'
For i = 0 to oArgs.Count - 1 ' hole alle Argumente
  Datei = oArgs.item(i)
'msgbox Datei
  If not fso.FileExists( Datei ) then
    MsgBox UCase( Datei ) & "   existiert nicht!" & vbCRLF & vbCRLF & " . . . das ist das Ende.", , WScript.ScriptName
    WScript.Quit
  End If
  Exit For   ' nur das erste Argument reicht
Next

' Gibt's keinen Dateinamen, wird das Skript gelesen
if Datei = "" then Datei = WScript.ScriptName

' alle Zeilen lesen und an Array übergeben

Set FileIn = FSO.OpenTextFile(Datei, 1, true) ' Datei zum Lesen öffnen
'msgbox Datei
i=0
Do While Not (FileIn.atEndOfStream) ' wenn Datei nicht zu ende ist, weiter lesen
ReDim Preserve Zeile(i)
Zeile(i) = FileIn.Readline
i = i + 1
Loop

If i < 1 Then
ReDim Preserve Zeile(i)
Zeile(i) = "Leerdatei"
End If
FileIn.Close
Set FileIn = nothing

' Array bearbeiten; hier: replace

for i = LBound( Zeile ) to UBound( Zeile )
Zeile(i) = Replace( Zeile(i), "zahlen", "POS-zahlen")
next

' Array in (Ziel-) Datei schreiben

Zielver="C:\test\" 'vorgabe zielverzeichnis
Datei = zielver & "POS-" & fso.GetBaseName ( Datei ) & ".txt"'
Set FileOut = FSO.OpenTextFile( Datei , 2, true) ' Datei zum Screiben öffnen; 2: immer neu anlegen

for i = 0 to ubound( Zeile )
FileOut.WriteLine Zeile(i)
'msgbox Zeile(i)
next

FileOut.Close
Set FileOuT = nothing

' (Ziel-) Datei anzeigen

WSHShell.run "notepad """ & Datei & """" , , True ' True: Skriptabarbeitung wartet bis Programm (notepad) beendet ist

' (Ziel-) Datei löschen

'fso.DeleteFile( Datei )



[Diese Nachricht wurde von Thomas Harmening am 13. Dez. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pablo
Mitglied
Techniker


Sehen Sie sich das Profil von pablo an!   Senden Sie eine Private Message an pablo  Schreiben Sie einen Gästebucheintrag für pablo

Beiträge: 453
Registriert: 23.01.2002

erstellt am: 14. Dez. 2005 02:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Garry 10 Unities + Antwort hilfreich

wachsames Holzauge II

Public Sub ReplacePos(sFileName As String)
'sFileName = Name der Datei
Dim FNr As Long, sInclPos As String, s As String

'  Datei öffnen
  FNr = FreeFile
  Open sFileName For Input As FNr
  Do While Not EOF(FNr)
    Line Input #FNr, s
'    gelesene Zeile ersetzen und in String schreiben
    sInclPos = sInclPos & Replace(s, "zahlen", "POS-zahlen") & vbCrLf
  Loop
  Close FNr
 
  'String in neue Datei schreiben
  FNr = FreeFile
  Open Left(sFileName, Len(sFileName) - 4) & "_Pos.txt" _
      For Output As FNr
    Print #FNr, Left(sInclPos, Len(sInclPos) - 2)
  Close FNr
End Sub

pablo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Garry
Mitglied
Techniker/Konstrukteur


Sehen Sie sich das Profil von Garry an!   Senden Sie eine Private Message an Garry  Schreiben Sie einen Gästebucheintrag für Garry

Beiträge: 683
Registriert: 05.03.2003

WIN10 (64bit), SWX 2019 Premium SP5, PDM-Pro2019 , XEON W-3225-3,7GHz 128GB, NVidia RT6000 SpacePilot Pro, SSD500GB Office 365

erstellt am: 17. Dez. 2005 08:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

Danke hat wunderbar geklappt


Garry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz