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

Textfeld, eingelesene Daten in Zeilen unterander schreiben!

 

Hansdampf
Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 17.12.10
Wohnort: Mannheim
Version: ---
     Beitrag Verfasst am: 19.12.2010, 13:58     Titel: Textfeld, eingelesene Daten in Zeilen unterander schreiben!
  Antworten mit Zitat      
Hallo an Alle!
Ich bin ein absoluter Forums- und Matlabanfänger und bitte euch meine möglichen Fehler zu entschuldigen.

Ich habe folgendes Problem,
ich lese mit fgetl Zeilen aus einem Datenssatz aus. Diese Zeilen möchte ich jetzt gerne in einem Textfeld darstellen (Anzeigen eines Headers z.B.). Wenn ich die eingelesen Zeilen an mein 'String' vom Textfeld übergebe, erscheint logischerweise nur die letzte Zeile meines Datensatzes da er ,denke ich, die eine Zeile immer wieder überschreibt. Ich mochte meine Datenzeilen aber schön untereinander anzeigen. also immer eine neu Zeile.Hat da jemand einen Tipp für mich.

Vielen Dank schon mal
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 19.12.2010, 15:10     Titel:
  Antworten mit Zitat      
Hi Hansdampf,

du kannst beispielsweise deine Daten, die im Editfeld angezeigt werden sollen in ein Cell-Array umwandels und dieses dann dem Editfeld übergeben...

z.B. so:
Code:

set(handles.edit1,'HorizontalAlignment','Left','Max',2,'String',{'hello';'World'},'Enable','inactive')
 

Sollen mehrere Zeilen angezeigt werden muss max - min > 1 sein (Properties des Text bzw. Editobjektes).

Möchtest du deine Daten unbedingt in einem Textfeld anzeigen lassen, dann kannst du das genauso machen. Allerdings musst du dann sicherstellen, dass es groß genug ist (higth & width) da sonst nur der Bereich sichtbar ist für den die Größe des Feldes ausreicht (es wird keine scrollbar hinzugefügt wie es beim Editfeld der Fall ist)

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
Hansdampf
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 17.12.10
Wohnort: Mannheim
Version: ---
     Beitrag Verfasst am: 19.12.2010, 17:27     Titel:
  Antworten mit Zitat      
Hallo Marco,
vielen Dank für die schnelle Antwort. Werde es gleich mal ausprobieren und dann berichten!
Private Nachricht senden Benutzer-Profile anzeigen
 
Hansdampf
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 17.12.10
Wohnort: Mannheim
Version: ---
     Beitrag Verfasst am: 20.12.2010, 09:46     Titel:
  Antworten mit Zitat      
Hallo Marco,
irgendwie steh ich da noch ein wenig auf dem Schlauch,
ich habe hier mal meinen Code

Code:

while feof(fid) == 0
    % Einlesen einer Zeile aus der Datei
    tline = fgetl(fid);
 [token remain] = strtok(tline);
    % Auswahl der Bearbeitungsschritte je nach Schlüsselwort
    switch token
                                             
        % Auslesen der Anzahl an Messpunkten
        case 'NumOfPoints'
            NumOfPoints = str2double(remain);
       ........        
        otherwise
            set(handles.text1,'HorizontalAlignment','Left','Max',2,'String',{tline},'Enable','inactive')


das wird so ja nicht richtig laufen. Ich glaub ich seh den Wald vor lauter...
Matlab soll doch nur meine eingelesene "tline" untereinanderschreiben.

Danke schon mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 21.12.2010, 00:29     Titel:
  Antworten mit Zitat      
Hi Hansdampf,

also wenn du einfach deine tline strings in das Editfeld eintragen willst dann kannste das wie folgt machen
Code:

Data = {};
while feof(fid) == 0
    % Einlesen einer Zeile aus der Datei
    tline = fgetl(fid);
   [token remain] = strtok(tline);
   switch token                                      
        % Auslesen der Anzahl an Messpunkten
        case 'NumOfPoints'
            NumOfPoints = str2double(remain);
       ........        
        otherwise
            if ischar(tline)
                 Data(end+1,1) = {tline};
            end
     end
end
set(handles.edit1,'HorizontalAlignment','Left','Max',2,'String',Data,'Enable','inactive')
 


Ich hoffe, dass es so funktioniert. Ich habe selber noch nie mit fgetl gearbeitet aber laut Hilfe bekommst du ja einen text string übergeben. Dementsprechend einfach deine Einträge in eine Cell Variable sammeln und das GUI Object anschließend setzen...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
Hansdampf
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 24
Anmeldedatum: 17.12.10
Wohnort: Mannheim
Version: ---
     Beitrag Verfasst am: 21.12.2010, 08:57     Titel:
  Antworten mit Zitat      
Hallo Marco,
und es läuft! Vielen Dank für deine Hilfe

Frohe Weihnachten und einen guten Rusch

Gruß
Hansdampf
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.