|
|
Konst. Wert in txt finden und durch Variable ersetzen |
|
Quadder |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 10.07.16
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: 2016a
|
 |
|
|
 |
|
Verfasst am: 10.07.2016, 08:48
Titel: Konst. Wert in txt finden und durch Variable ersetzen
|
 |
|
 |
|
Hallo Community,
ich habe mich bisher nicht tiefergehend mit Matlab auseinandergesetzt, sondern das Programm nur für einfache Sachen genutzt.
Jetzt stehe ich vor einem Problem, wo mir die Programmierkenntnisse fehlen und ich hoffe ihr könnt mir weiterhelfen!
Problemstellung:
- Es liegt eine .txt-Datei vor, die sowohl Zeichen als auch Zahlen beinhaltet und über mehrere Seiten geht. Es soll ein bestimmter und konstanter Wert '$VEL.CP = 0.01' gesucht werden und durch eine Variable ersetzt werden. Die Variable A soll einer Tabelle entnommen und nach jedem Änderungsschritt auf den Wert der nächsten Zeile der Tabelle geändert werden.
Beispiel:
Eingang: Dies ist ein $VEL.CP = 0.01 beispiel Text mit $VEL.CP = 0.01 Werten.
Ausgang: Dies ist ein $VEL.CP = 0.01234 beispiel Text mit $VEL.CP = 0.07575 Werten.
Mein Code bis jetzt, was quasi der Suche&Ersetze Funktion vom Wordpad entspricht...
Es fehlt die Umsetzung aus der Tabelle eine sich automatisch ändernde double zu machen.
Vielen Dank für eure Unterstützung und schönen Sonntag!
Markus
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.07.2016, 09:21
Titel:
|
 |
Hallo,
wenn ich das richtig verstehe:
vor der Schleife:
am Anfang der while-Schleife:
am Ende der for-Schleife:
Ist sichergestellt, dass die Anzahl der Zeilen in der Excel-Datei mit der Anzahl zu ersetzender Zeilen in der Textdatei übereinstimmt?
Grüße,
Harald
|
|
|
Quadder |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 10.07.16
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: 2016a
|
 |
|
|
 |
|
Verfasst am: 10.07.2016, 09:46
Titel:
|
 |
|
 |
|
Hallo Harald,
super Ansatz auf den ich einfach nicht gekommen bin.
Als ich dachte das damit das Problem schon gelöst sei, ist mir aufgefallen das mit meiner Schleife ja jede Zeile abgefragt wird und damit auch 'row' jedes mal einen hochgesetzt wird.
Ergebnis in meinem Minimalbeispiel ist, dass ich die Geschwindigkeit in Zeile vier im Text durch den Wert aus der Tabelle Zeile vier ersetze, wobei dort eigentlich das erste mal etwas mit dem Wert auf Tabelle Zeile eins ersetzt werden soll.
Anzahl der Zeilen in der Excel-Datei soll vorerst gleich der Anzahl der zu ersetzenden Zeilen in der Textdatei sein. Aber es befinden sich noch weitaus mehr Zeilen in der Textdatei die nicht ersetzt werden soll.
Bsp. Zeilen Text 4000, Zeilen im Text die ersetzt werden sollen 90, Zeilen in Tabelle 90.
Wie kann ich in der Schleife ändern, dass der Zähler nicht zeilenweise hochgesetzt wird, sondern nur wenn Wert in Zeile geändert wurde?
if Bedingung? == true
row = row + 1
else
row = row?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 10.07.2016, 10:22
Titel:
|
 |
Hallo,
wie wäre es mit
Alternativ werden die Zeilen ja durch die Ersetzung länger. Man könnte also die Anzahl der Zeichen vor und nach der Ersetzung vergleichen. Falls Performance wichtig ist, könnte das etwas bringen.
Grüße,
Harald
|
|
|
Quadder |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 10.07.16
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: 2016a
|
 |
|
|
 |
|
Verfasst am: 10.07.2016, 12:35
Titel:
|
 |
Hallo Harald,
vielen Dank für die Lösung! Ich habe es eben durchlaufen lassen und bislang keine Probleme hinsichtlich Rechenzeit. Ich behalte das mit der Performance mal im Hinterkopf, da ich das Programm noch erweitern möchte.
strcmp kannte ich noch nicht und hat vviel Potential für meine weiteren Überlegungen.
Vielen Dank nochmal!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|