Zusammenführen 2er Textdateien und löschen von Zeilen
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 26.08.2010, 10:14
Titel: Zusammenführen 2er Textdateien und löschen von Zeilen
Hallo liebe Matlab Freunde,
ich komme bei einem Problem nicht weiter, vielleicht kann mir einer von euch weiterhelfen.
Ich habe zwei Textdateien die ich zuerst zu einer umwandeln möchte. Also die erste Datei (Header) kopiere ich in ein leeres Textfile und anschließend mache ich des gleiche mit der zweiten Datei. Dafür lese ich Zeile für Zeile aus und schreibe sie in des neue File. Dieses klappt auch soweit.
$$------------------------------------------------------------------------------$
$$ $
$$ NASTRAN Input Deck Generated $
$$ Generated using Template Version :
$$ $
$$ Template: general $
$$ $
$$------------------------------------------------------------------------------$
$$------------------------------------------------------------------------------$
$$ Executive Control Cards $
$$------------------------------------------------------------------------------$
CEND
$$------------------------------------------------------------------------------$
$$ Case Control Cards $
$$------------------------------------------------------------------------------$
$$------------------------------------------------------------------------------$
$$ Bulk Data Cards $
$$------------------------------------------------------------------------------$
BEGIN BULK
$$
$$ GRID Data
$$
GRID 1 0.0 0.0 0.0
GRID 2 0.04 0.0 0.0
GRID 3 0.0399889.56E-040.0
GRID 4 0.0399540.00192 0.0
GRID 5 0.0398950.0028930.0
GRID 6 0.0398120.0038720.0
GRID 7 0.0397040.0048580.0
GRID 8 0.03957 0.00585 0.0
usw....
Nun zu meinem Problem:
Ich möchte dass er alle Zeilen der 2ten Datei die ein $-Zeichen (auch $$) enthalten nicht kopiert, also ignoriert.
Das meine Datei am Ende also den Header enthält und von der zweiten Datei alles außer die $-Zeichen Zeilen.
Ich schaffe es auch dass er erkennt welche Zeile gemeint ist und zum versuchen ein Enter macht, aber dass er die Zeile löscht/ignoriert bekomme ich nicht hin.
ihr habt mir grad echt weitergeholfen, hab eure beiden Lösungen zum laufen gebracht. Vielen, vielen, lieben Dank für eure schnelle Hilfe.
Programmier gerade fleißig an dem m-file weiter
Wisst ihr vielleicht wie ich Matlab sagen kann dass er die Datei wo er die Sachen neu reinschreibt, also die New.txt automatisch anlegen kann, also dass ich sie nicht zuerst per Hand erstellen muss?
Bis jetzt öffne ich nur die Datei, die ich manuell erstellt habe in:
wird
Code:
newfid = fopen(strcat(dir,'New.txt'),'wt+'); %file das neu geschrieben
bist du dir sicher dass die datei nicht automatisch angelegt wird?
ich musste sie nicht manuell anlegen als ich dein code getestet habe .
gruss
_________________
Ein schlechter General ist besser als zwei gute.
laurina
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.08.2010, 10:16
Titel:
Oops,
ja, du hast recht. Danke!! Ein Problem weniger
Super Forum hier!!!
laurina
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.08.2010, 10:39
Titel:
Letzte Frage:
Kann ich irgendwie realisieren, dass er wenn er des erste mal GRID findet davor was schreiben soll, z.b:
**
**Grid Daten
**
Leider kann ich nicht nach der letzten Zeile suchen, weil die immer unterschiedlich ist.
Mein Versuch:
Code:
if ~ischar(tline), break, end % fprintf(newfid, tline); % fprintf(newfid, '\n');
linesp = findstr('BEGIN BULK',tline); %$$ Schlüsselwort nach dem gesucht wird
ifisscalar(linesp);
fprintf(newfid,'$$\n$$GRID Data\n$$\n');
Also müsst ich irgendwie das Suchwort GRID (aber nur das erste, sonst schreibt er es ja nach jedem GRID) finden und dann davorschreiben oder die letzte MAT1 Zeile finden und danach erst schreiben.
Danke Fourier!!!
Super Lösung!!!
Jetzt klappt alles wunderbar!!!
Jetzt hast du erstmal Ruhe vor mir
Vielen Dank und liebe Grüße
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
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.