WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Text-Datei manipulieren

 

Jan2000
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 11.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2011, 09:44     Titel: Text-Datei manipulieren
  Antworten mit Zitat      
Hallo Freunde,

ich möchte wiesen ob es eine Möglichkeit gibt, eine Text-Datei zu manipulieren? Ich habe eine Text-Datei die folgendes aussieht:

Befehl\3-Axis\Form-R\NC_YXZ_CenterofMasse.TXT }
N20 {Info Tool---> Diameter1 [mm] = 10.000000}
N30 {Info Tool---> Length2 [mm] = 55.000000}
N40 {Info Tool---> Diameter2 [mm] = 6.000000}
N50 {Info Tool---> Length1 [mm] = 15.000000}
N60 {Info Feed [mm/min] = 1000}
N80 {linear Interpolation}
N90 G49 G54 G00 F1500.00 X 42.50 Y-104.22 Z155.00 A 0.00 B 0.00 C 0.00 M24.250
N100 G00 X 85.00 Y-215.00 Z105.00 A 0.00 B 0.00 C 0.00
N110 G01 X 85.00 Y-217.00 Z 94.25 A 0.00 B 0.00 C 0.00
N120 G01 X 0.00 Y-217.00 Z 94.25 A 0.00 B 0.00 C 0.00

und ich möchte von diese text nur dieses Teil

X 42.50 Y-104.22 Z155.00 A 0.00 B 0.00 C 0.00
X 85.00 Y-215.00 Z105.00 A 0.00 B 0.00 C 0.00
X 85.00 Y-217.00 Z 94.25 A 0.00 B 0.00 C 0.00
X 0.00 Y-217.00 Z 94.25 A 0.00 B 0.00 C 0.00

kopieren und in einem Array nur die Werte speichern ohne X,Y,Z,A,B,C wobei ich später jede zwei Zeile ablesen und in anderen Teil meines Programmes benutzen kann allerdings als ein vector P1=[42.50 -104.22 155 0 0 0 ] und P2=[85 -215 105 0 0 0] usw.



zweites Problem: Ich zeige einige Werte in eine text-feld in meine Gui, diese Werte sehen so aus:
X:1.000 Y:2.000 Z:3.000 A:4.000 B:5.000 C:6.000 A1:1.000 A2:2.000 A3:3.000 A4:4.000 A5:5.000 A6:6.000
und ich möchte wiesen ob ich diese Zeile manipulieren kann und in dieses Form bringen kann?
P1=[1 2 3 4 5 6] das sind die erste 6 Werte.

vielen Dank im Voraus
Jan
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.11.2011, 13:49     Titel: Re: Text-Datei manipulieren
  Antworten mit Zitat      
Hallo Jan2000,

Was hast Du bisher versucht und welche konkreten Schwierigkeiten traten auf? Welche Art von Hilfe erwartest Du? Ein fertiges Programm, das Du einfach nur noch kopieren musst?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan2000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 11.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2011, 14:48     Titel:
  Antworten mit Zitat      
ein fertiges Programm erwarte ich nicht hier von jemand und ich versuche hier richtiger Pfad zu finden. ich habe mit diese code versucht:

fid=fopen(filename);
data=textscan(fid, '%s');
fclose(fid);

wollte file aufmachen und scannen aber konnte nicht in eine Array speichern!
dann habe ich diese versucht:

dlmwrite('dateiname.txt',[X Y Z A B C],'delimiter','\t');
aber hat auch nicht funktioniert!

das habe ich auch versucht:
M = gallery('integerdata', 100, [1 6], 0);
%dlmwrite('koordinaten.txt', M, 'delimiter', '\t')

ein Matrix erzeugen und alle 6 werte rein schreiben.
meine Frage war ob es überhaupt möglich ist was ich meinte und eventuell ein Tipp.

Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.11.2011, 20:43     Titel:
  Antworten mit Zitat      
Hallo Jan2000,
Zitat:
aber hat auch nicht funktioniert!

Darauf kann man praktisch nicht antworten. Bitte erkläre immer, was genau nicht funktioniert hat. Gab es eine Fehlermeldung, wenn ja, welche? Oder wichen die Ergebnisse von Deinen Erwartungen ab?

Das posten einiger Zeilen ohne direkten Zusammenhang bringt meistens keine Klarheiten. Bitte poste Code, den wir laufen lassen können, und der das problem direkt reproduziert.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan2000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 11.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2011, 17:05     Titel:
  Antworten mit Zitat      
Hallo Jan,

sorry dass ich erst heute zurückschreibe. da mein Code zu groß war habe ich ein neu GUI implementiert und nur diese Funktion die nicht läuft rein geschrieben.Die heissen test und test1. Bei test habe ich 2 Probleme gehabt und zwar,
ich schicke ein Befehl an die Maschine und als Antwort bekomme ich eine Zeile, diese habe ich in ein Feld reingeschrieben. Nun will ich diese String manipulieren aber ich bekomme Fehlermeldung dass zu viel Argumente habe!
und ganz unten bei Pushbutton 2 will ich ein Textdatei wählen und ebenso manipulieren aber da habe ich auch gleiches Problem.

Bei test 1 habe ich mit Openfile versucht aber leider hat es auch nicht geklappt. Lass bitte die file laufen, siehst du selber das Problem.
Als Beispiel habe ich auch eine textdatei hochgeladen, für die Manipulation.
Interessant sind nur werte von X Y Z A B C
kannst du mir sagen wo ich Fehler mache?

vielen Dank im Voraus

BackUpl.txt
 Beschreibung:

Download
 Dateiname:  BackUpl.txt
 Dateigröße:  5.99 KB
 Heruntergeladen:  704 mal
test1.m
 Beschreibung:

Download
 Dateiname:  test1.m
 Dateigröße:  2.8 KB
 Heruntergeladen:  314 mal
test1.fig
 Beschreibung:

Download
 Dateiname:  test1.fig
 Dateigröße:  1.74 KB
 Heruntergeladen:  316 mal
test.m
 Beschreibung:

Download
 Dateiname:  test.m
 Dateigröße:  3.86 KB
 Heruntergeladen:  362 mal
test.fig
 Beschreibung:

Download
 Dateiname:  test.fig
 Dateigröße:  2.42 KB
 Heruntergeladen:  319 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.11.2011, 21:41     Titel:
  Antworten mit Zitat      
Hallo Jan2000,

Ich habe keine Zeit Dein Programm laufen zu lassen.
Es ist effizienter, wenn Du die relevanten Zeilen und die vollständige Fehlermeldung postest.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan2000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 11.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2011, 23:02     Titel:
  Antworten mit Zitat      
Hallo Jan,


also ich habe inzwischen kleines teil davon gelöst aber habe noch ein kleines Problem und zwar,
ich habe eine String in eine textfeld , sieht so aus
X:1.000 Y:2.000 Z:3.000 A:4.000 B:5.000 C:6.000 A1:1.000 A2:2.000 A3:3.000 A4:4.000 A5:5.000 A6:6.000
und ich möchte diese Zeichen : und die Buchstaben löschen und erste 6 Werte als ein Vektor speicern. Durch diese 2 Zeile (siehe unten) habe ich
Zeichen : gelöscht, ich kann auch die Buchstabe X löschen aber alle andre Buchstaben nicht!

str=get(handles.text2, 'String')
a = regexprep(str, ':', ' ', 'ignorecase')


Es gibt keine Fehlermeldung und meine Frage ist wie kann ich die erste 6 werte als Vektor speichern? Hast du eine Idee?

Gruß
Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan2000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 11.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2011, 01:47     Titel:
  Antworten mit Zitat      
hallo Jan, die Lösung habe ich rausbekommen,

Code:
str=get(handles.text2, 'String')                          %hole die Daten
a1=regexprep(str, '( : )',' ')                                 % lösche Zeichen :
set(handles.text5, 'String', a1)                            %setze im Feld 5
str=get(handles.text2, 'String')                            %hole die Daten nochmal
a=regexprep(str,'(X: )|(Y: )|(Z: )|(A: )|(B: )|(C: )|(A1: )|(A2: )|(A3: )|(A4: )|(A5: )|(A6: )',' ')    %Lösche sämtliche Buchstaben und Zeichen :
pos=a(end-4)-1;    %Rückwärts von hinten löche bis Pos
NewS=a(1:pos);     %Speichere in NewS
disp(NewS)
P2=NewS;
set(handles.text3, 'String', P2)                                 % setze in Feld 3
A=str2num(get(handles.text3, 'String'))    
P2=[A];                                                                 %baue Vector P2
 

und schon habe ich Koordinaten als Vektor. aber eine Frage habe ich und zwar kann man
von eine text-datei erste n-zeile lassen und die Reste manipulieren wie oben?

Gruß
Jan

Bitte Code-Umghebung benutzen - Danke, Jan S
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.