Hot News:

Unser Angebot:

  Foren auf CAD.de
  Windows XP
  String auswerten

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  String auswerten (1489 mal gelesen)
K_H_A_N
Ehrenmitglied
Dipl.-Ing. (freiberuflich)


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

Beiträge: 1555
Registriert: 21.07.2004

Creo Parametric & Simulate 3.0 M140 ab 4.0 gemietet
CATIA V5
Siemens NX
i9-13900K @5.9 GHz 4x16GB @7.2 GHz nVidia RTXA4000
WINDOWS 10 Pro 64

erstellt am: 02. Apr. 2007 17:07    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 zusammen,
ich weiß zwar nicht, ob es hier richtig ist, aber ich habe kein passenderes Forum gefunden.

Folgende Aufgabenstellung ist (automatisiert) zu lösen:
Ich habe eine Textdatei, in der an bekannter Stelle (Zeile 7, 3. Wort) ein Wort auszutauschen ist. Dieses Wort wird gefunden durch die Auswertung einer OS-Variable, deren Wert zunächst mit SET Variable >tmp.txt ausgewertet wird. In tmp.txt steht dann Variable=Wert. Dieser Wert soll in die andere Textdatei nach Zeile 7 Wort 3.

Wie geht so etwas?

Ich bin für jede Anregung dankbar.
MfG

------------------
BTWBy the way (So nebenbei bemerkt): your computer has no brain, use your own 

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 02. Apr. 2007 18:15    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 K_H_A_N 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von K_H_A_N:
...(Zeile 7, 3. Wort)...

Diese Angabe ist keine exakte stelle...

Oder ist dieses Wort immer ident ? In allen Dateien ?

------------------
Grüsse

Thomas

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

K_H_A_N
Ehrenmitglied
Dipl.-Ing. (freiberuflich)


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

Beiträge: 1555
Registriert: 21.07.2004

erstellt am: 02. Apr. 2007 18:53    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

klares ja.
Die ursprüngliche Textdatei ist immer gleich.
MfG

------------------
BTWBy the way (So nebenbei bemerkt): your computer has no brain, use your own 

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 02. Apr. 2007 19:02    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 K_H_A_N 10 Unities + Antwort hilfreich

OK - dann wird es schon ein bisschen leichter...

Ist das Wort einmalig (also kommt es in der TXT-Datei nur einmal vor) ? Oder gibt es dieses Wort häufiger ?

Eventuell kannst du deine Aufgabenstellung etwas präzisieren - da normal Variablen, welche im OS definiert sind auch direkt verarbeitet werden können...

Desweiteren:

Wie häufig muss man diese TXT-Datei(en) ändern ? Einmal ? Täglich ?
(Tools wie Notepad++ kann zB viele Dateien öffnen und in allen dann was suchen und ersetzen...)

------------------
Grüsse

Thomas

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

K_H_A_N
Ehrenmitglied
Dipl.-Ing. (freiberuflich)


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

Beiträge: 1555
Registriert: 21.07.2004

erstellt am: 02. Apr. 2007 19:32    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

die ursprüngliche Textstelle kann ich frei definieren. Sie entstammt einem Trailfile (Pro/E) und entsteht bei der Eingabe.

Start Pro/E-Chinesisch
Der Trailfile ist in Pro/E ausführbar, d.h., alles, was da drin aufgezeichnet wurde, läuft nach Aufruf des Trails auch wieder ab.
Im Grunde geht es mir um die Übergabe einer OS-Variable an Pro/E als Parameter. Ich will den Parameter über den Trail mit dem geänderten Wert erzeugen. Leider kann Pro/E das nicht selbst. Über einen Batch-Script oder eine andere aus einem DOS-Fenster ausführbare Datei will ich den Trail (Vorlage) kopieren, die Textstelle mit dem Wert der Variablen überschreiben und dann den Trail im Pro/E ablaufen lassen. Das Ganze dann auch noch als Mapkey (Pro/E-Makro).
Ende Pro/E-Chinesisch

Ich hoffe, jetzt ist es transparenter.
MfG

------------------
BTWBy the way (So nebenbei bemerkt): your computer has no brain, use your own 

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 02. Apr. 2007 20:14    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 K_H_A_N 10 Unities + Antwort hilfreich

Generell gibt es Tools wie AEdit (von PC Magazine) die das im Batch-Modus können...

Sonst:

Du kannst dir auch deine einzelnen Textbausteine in Files kopieren (bzw. anlegen) und dann mittels copy-Befehl im DOS zusammenkopieren... (das ist aber nur 'ne blöde alte Methode...)

------------------
Grüsse

Thomas

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

Hermes
Mitglied



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

Beiträge: 311
Registriert: 08.09.2002

erstellt am: 03. Apr. 2007 10:45    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 K_H_A_N 10 Unities + Antwort hilfreich


wenn der Original-String eindeutig ist (z.B. file1.txt : #STRING1# ) dann ist es einfach

sed  s/#STRING1#/Fritz/ file1.txt > file2.txt

Windows XP enthält eine einfache Version des Programmes "sed" (String Edit)

Es gibt auch GNU Software Version von "sed" wie sie in den Unix Welt üblich ist; Diese Tools unterstützen regular Expression für die Selektion der Textstrings

------------------
mit freundlichen Grüssen
Toni

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

fritsrol
Mitglied
CAD-Systemingenieur


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

Beiträge: 143
Registriert: 11.12.2002

Windows 10 64
Office 2016
Eplan P8 2.7 HF2
VS 2015
Medusa 2000i2

erstellt am: 03. Apr. 2007 11:38    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 K_H_A_N 10 Unities + Antwort hilfreich

Hallo,

folgendes Batchprogramm liest alle Zeilen einer Datei, ersetzt eine festgelegte Phrase (123) mit einem neuen wert (wxyz) und schreibt das in eine Neue Datei.
Der "For /F" Befehl kennt auch noch ein paar Optionen um Zeilen aufzuschlüsseln (token, delim ...) -> Windows Hilfe

-----------------------------------------------------
@echo off
c:
cd c:\temp
echo. > test2.txt

for /F "tokens=*" %%a in (test.txt) do @call :dodir %%a

type test2.txt
goto :eof

REM Sub-Programm zum abarbeiten der gefundenen Zeilen
:dodir
echo.
echo ************************************
echo **** found %1 ****
set orgstr=%1

REM *** Ersetzt in der aktuellen Zeile 123 mit wxyz
set tmpstr=%orgstr:123=wxyz%

echo %tmpstr% >> test2.txt
goto :eof
----------------------------------------------------

@Hermes : Wo hast Du unter Windows das sed Programm gefunden ?

Gruß
Roland

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

Hermes
Mitglied



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

Beiträge: 311
Registriert: 08.09.2002

erstellt am: 03. Apr. 2007 12:29    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 K_H_A_N 10 Unities + Antwort hilfreich

der Pfad zum Programm lautet C:\WINDOWS\system32\SED.EXE
kann somit ab Command-shell bzw. in BAT-Scripts aufgerufen werden;
SED /?  bingt eine eher bescheidene Beschreibung;

Mit Google findet man div. Doku's  und div. GNU Software Versionen


------------------
mit freundlichen Grüssen
Toni

[Diese Nachricht wurde von Hermes am 03. Apr. 2007 editiert.]

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

K_H_A_N
Ehrenmitglied
Dipl.-Ing. (freiberuflich)


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

Beiträge: 1555
Registriert: 21.07.2004

Creo Parametric & Simulate 3.0 M140 ab 4.0 gemietet
CATIA V5
Siemens NX
i9-13900K @5.9 GHz 4x16GB @7.2 GHz nVidia RTXA4000
WINDOWS 10 Pro 64

erstellt am: 04. Apr. 2007 16:38    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

Erstmal vielen Dank für die Lösungswege,

zunächstmal der output von dem Script:

!trail
!Pro/ENGINEER
123=wxyz
123=wxyz
123=wxyz
123=wxyz
123=wxyz
123=wxyz
~
!Command
!
!
~
~
~
~parameter
!End

Das war so nicht gemeint.
Ich will nur die eine Zeile ändern, von parameter 123 nach parameter wxyz, um beim Beispiel zu bleiben.

Der Ansatz mit dem Zusammenkopieren ist für mich einfacher.
In Kombination mit sed ist die Lösung gefunden:

"c:\Program Files (x86)\GnuWin32\bin\sed" -e s/USERNAME=// C:\usr\local\default\temp.txt >C:\usr\local\default\trail2.txt

heißt die entsprechende command line im Beispiel, um die Auswertung des Parameters auf seinen Wert zu kürzen.

Danke und U's

------------------
BTWBy the way (So nebenbei bemerkt): your computer has no brain, use your own 

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

K_H_A_N
Ehrenmitglied
Dipl.-Ing. (freiberuflich)


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

Beiträge: 1555
Registriert: 21.07.2004

erstellt am: 06. Apr. 2007 11:51    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

kleine Ergänzung:
ich habe noch den Tipp bekommen, dass

for /f "tokens=2 delims==" %%a in (%verzeichnis%\temp.txt) do echo %%a > %verzeichnis%\trail2.txt

das Gleiche Ergebnis ergibt. In diesem Fall sorgt delims== mit dem 2. = dafür, dass die Zeile bis zum = ignoriert wird und alles dahinter ausgegeben wird.
Und Bordmittel gehen vor Freeware. Anderer Seits kann man mit sed jeden beliebigen bekannten Teil eines Strings entfernen. Hat auch seinen Charme, wo es gebraucht wird.

MfG

------------------
BTWBy the way (So nebenbei bemerkt): your computer has no brain, use your own 

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)2025 CAD.de | Impressum | Datenschutz