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

msgBox mit (mehreren) Tabulatoren?

 

Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 15.08.2016, 11:09     Titel: msgBox mit (mehreren) Tabulatoren?
  Antworten mit Zitat      
Hallo,

ich würde gerne eine msgbox mit Tabulatoren ausgeben.
Wie schon von unschärfe hier gepostet, klappt weder
Code:
msgbox(['langertext' 9 ' ' 9 'x' 10 'ähnlichertext'  9 ' ' 9 'x'])
msgbox(['langertext' sprintf('\t') ' ' sprintf('\t') 'x' 10 'ähnlichertext'  sprintf('\t') ' ' sprintf('\t') 'x'])

so richtig.
Teilweise scheint schon mal ein Tab zu klappen, aber wann das der Fall ist, konnte ich noch nicht herausfinden.

Das Herumspielen am Interpreter
Code:
CreateStruct.WindowStyle = 'modal';
CreateStruct.Interpreter = 'none';
 


hat mich auf die Idee gebracht, mal latex zu probieren.
Diese Tabelle liefert als Laxtex-Interpretierung leider nur
Code:
Warning: Unable to interpret LaTeX string "\begin{tabbing}
\hspace*{1cm}\=\hspace*{4.2cm}\=\hspace*{3cm}\=\hspace*{2.7cm}\= \kill     Deutschland \\ \>{\bf Bundesland} \> {\bf
Hauptstadt} \> {\bf Fläche} \> {\bf Einwohner} \\    \>Baden-Württemberg \> Stuttgart \> 35.752 $\text{km}^2$ \>
10.717.000 \\ \>\dots \\    Schweiz \\ \>{\bf Kanton} \> {\bf Hauptort} \> {\bf Fläche} \> {\bf Einwohner} \\
\>Aargau \> Aarau \> 1.404 $\text{km}^2$ \> 565.400 \\ \>\dots \\   \end{tabbing}"

_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen


punkNgrind
Forum-Century

Forum-Century


Beiträge: 136
Anmeldedatum: 10.03.11
Wohnort: Hamburg
Version: R2014b
     Beitrag Verfasst am: 15.08.2016, 12:03     Titel:
  Antworten mit Zitat      
Hallo,

kannst du nicht anstatt Tabulatoren Leerzeichen mit 'blanks()' verwenden? Also so:

Code:
msgbox(['langertext' blanks(6)  'x' 10 'ähnlichertext'  blanks(2) 'x'])
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 15.08.2016, 12:09     Titel:
  Antworten mit Zitat      
Naja, dann ist es so als würde ich Leerzeichen verwenden, ergo ist alles schief untereinander. Ich wollte mit den Tabulatoren eben auch eine Gruppierung vornehmen...
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
punkNgrind
Forum-Century

Forum-Century


Beiträge: 136
Anmeldedatum: 10.03.11
Wohnort: Hamburg
Version: R2014b
     Beitrag Verfasst am: 16.08.2016, 10:00     Titel:
  Antworten mit Zitat      
Ich habe jetzt zwei Varianten ausprobiert:

Variante 1:
Code:

   %% Gruppen mit variablen Inhalt erstellen
   gruppe1 = {'abc',    'defg', '123456', 'jkf'};
   gruppe2 = {'jhfah',  '12'  , 'xxx'};
   
   
   %% MsgBoxText: Erste Gruppe hinzufügen
   msgboxtext = cell.empty;
   for i=1:length(gruppe1)
    msgboxtext{i} = sprintf('%s \t\t\t :gruppe1', char(gruppe1(i)) );
   end

   %% MsgBoxText: Zweite Gruppe hinzufügen
   nextposition = i + 1;
   for i=1:length(gruppe2)
    msgboxtext{nextposition} = sprintf('%s \t\t\t :gruppe2', char(gruppe2(i)) );
    nextposition = nextposition + 1;
   end
   
   %% Text ausgeben
   msgbox(msgboxtext);
 


Variante 2:

Code:

   %% Gruppen mit variablen Inhalt erstellen
   gruppe1 = {'abc',    'defg', '123456', 'jkf'};
   gruppe2 = {'jhfah',  '12'  , 'xxx'};
   
   %% Maximale möglichen Leerzeichen bestimmen
   maxcharacters(1) = max(cellfun(@length, gruppe1));
   maxcharacters(2) = max(cellfun(@length, gruppe2));
   maxblanks = max(maxcharacters)+1;
   
   %% MsgBoxText: Erste Gruppe hinzufügen
   msgboxtext = cell.empty;
   for i=1:length(gruppe1)
    % Anzahl der benötigten Leerzeichen bestimmen
    actblanks = maxblanks - cellfun(@length, gruppe1(i));
    % Neue Zeile beschreiben
    msgboxtext{i} = [char(gruppe1(i)) blanks(actblanks) ': gruppe1'];
   end

   %% MsgBoxText: Zweite Gruppe hinzufügen
   nextposition = i + 1;
   for i=1:length(gruppe2)
    % Anzahl der benötigten Leerzeichen bestimmen
    actblanks = maxblanks - cellfun(@length, gruppe2(i));
    % Neue Zeile beschreiben
    msgboxtext{nextposition} = [char(gruppe2(i)) blanks(actblanks) ': gruppe2'];            
    nextposition = nextposition + 1;
   end
   
   %% Text ausgeben
   msgbox(msgboxtext);
 


...leider funktionieren beide nicht. Question Confused

Edit: Wobei Variante 2 noch dem Ergebnis am nächsten kommt, Problem ist hier das z.B. ein Buchstabe wie X mehr Platz verbraucht als der Buchstabe i.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 16.08.2016, 14:22     Titel:
  Antworten mit Zitat      
Genau da ist ja grade der Sinn von Tabstopps - ohne die Breite der Buchstaben und Zeichen bestimmen zu können, wo rein visuell eine schöne Abgrenzung stattfindet. Dann entsprechend an den Rändern des bedruckbaren Bereiches und im Zeichenabstand. Alternativ kenne ich aus dem .NET, dass man auch die Länge eines Strings vermessen lassen kann.

Hmmmmm, auch eine Schriftart mit fester Buchstabenbreite kann man ja im msgbox nicht definieren...

Arrow Wird wohl auf ein Extra-Form hinauslaufen müssen, wenn's hübsch sein soll
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
punkNgrind
Forum-Century

Forum-Century


Beiträge: 136
Anmeldedatum: 10.03.11
Wohnort: Hamburg
Version: R2014b
     Beitrag Verfasst am: 16.08.2016, 15:47     Titel:
  Antworten mit Zitat      
Ja, ich hatte das so mit blanks für das Schreiben in einer txt-Datei verwendet und dort funktioniert das wunderbar.

Falls du eine schöne Lösung gefunden hast, bitte schreib das hier mal rein, mich interessiert das auch.
Private Nachricht senden Benutzer-Profile anzeigen
 
punkNgrind
Forum-Century

Forum-Century


Beiträge: 136
Anmeldedatum: 10.03.11
Wohnort: Hamburg
Version: R2014b
     Beitrag Verfasst am: 01.09.2016, 12:35     Titel:
  Antworten mit Zitat      
Hast du eigentlich schon eine Lösung gefunden?
Ich stehe nämlich gerade wieder vor selbiges Problem.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 13.10.2016, 08:55     Titel:
  Antworten mit Zitat      
Sorry für die späte Antwort!

Ich hab mir ein neues Form mit GUIDE gebaut in welches ich nun diverse Formate (aus einem Cell) übergeben kann.
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
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 - 2024 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.