Textlänge messen (in Pixel oder sonst einer Einheit)
-
Ich gebe Text in eine Log Datei aus. Es handelt sich um Namen und Werte. Das Ganze schau ich mir dann in einem Texteditor an. Leider ist jetzt beding durch die Stringlänge keine eindeutige Aussage zu machen wieviele Tabs ich einfügen muss um einen geleichmässige Abständ zwischen den Daten zu erhalten. Wie kann ich die dargestellte Länge der Strings ermitteln und ggf Tabs nach Wahl einfügen? Wie berücksichtige ich die eingestellte Schriftart im Editor und was muss ich sionst noch beachten.
Das Ganze läuft unter Windows als Editor nehme ich UltraEdit.
-
Guten Abend,
ich weiß nicht so recht, ob ich deine Frage richtig verstanden habe, aber hier eine mögliche Lösung für:Wie kann ich die dargestellte Länge der Strings ermitteln
std::string.length()
Bsp.:
// string::length #include <iostream> #include <string> using namespace std; int main () { string str ("Test string"); cout << "The length of str is " << str.length() << " characters.\n"; return 0; }
Viel Erfolg bei der Lösung deines Problems
-
-
W.H. schrieb:
Ich gebe Text in eine Log Datei aus. Es handelt sich um Namen und Werte. Das Ganze schau ich mir dann in einem Texteditor an. Leider ist jetzt beding durch die Stringlänge keine eindeutige Aussage zu machen wieviele Tabs ich einfügen muss um einen geleichmässige Abständ zwischen den Daten zu erhalten. Wie kann ich die dargestellte Länge der Strings ermitteln und ggf Tabs nach Wahl einfügen? Wie berücksichtige ich die eingestellte Schriftart im Editor und was muss ich sionst noch beachten.
Das Ganze läuft unter Windows als Editor nehme ich UltraEdit.
Ich kann folgende Möglichkeiten anbieten:
-
Du machst immer ein einziges TAB Zeichen rein, und stellst den Editor/Viewer so um dass die TABs so weit auseinanderliegen "dass es passt".
-
Du definierst eine bestimmte TAB-Weite (z.B. 4 oder 8 Zeichen), und zählst dann einfach Zeichen. Im Editor muss dann die definierte TAB-Weite eingestellt werden, und ein beliebiger Fixed-Font eingestellt, damit es richtig angezeigt wird.
-
Du machst Spaces statt TABs rein, auch einfach nach der Zeichen-Anzahl. Im Editor muss dann nur ein beliebiger Fixed-Font eingestellt werden damit es richtig angezeigt wird.
Ich würde (3) empfehlen, da es die wenigsten Einstellungen im Editor erfordert. Auch das Importieren mit Programmen wie Excel oder Access ist dann einfach möglich, da diese das Textfiles mir fixer Spaltenbreite unterstützen.
Das sieht dann z.B. so aus:
Name1 Wert1 AndererName AndererWert GanzLangerNameLalaBlabla NochEinWert
-
-
@Josh.Schr.
danke für die Mühe, aber das ist nicht das was ich suche.@hustbaer
danke für die Ausführliche Erklärung, aber die Darstellung des Editors möcht ich nicht jedesmal umstellen, wenn ich die log-Datei betrachte. Den Editor benutze ich auch fürs Programme schrieben und an die Einstellungen bin ich schon gewöhnt.@query msdn
ja danke, das scheint so mehr das zu sein was mir vorschwebt.Weiss jemand wie ich nun einen device context der meinem Editorfenster ähnelt oder gleicht erzeuge?
-
hallo,
ich meine dass man sich die TextMetrics per GetTextMetrics(lpTextMetric) besorgen kann. Dann kannst du den Text auch rechtsbündig machen. mit SetTextAlign(hdc,alignparameter) sollte das gehen. Zumindest ein paar ansätze, ich hoffe du kannst etwas damit anfangen.
-
W.H. schrieb:
@hustbaer
danke für die Ausführliche Erklärung, aber die Darstellung des Editors möcht ich nicht jedesmal umstellen, wenn ich die log-Datei betrachte. Den Editor benutze ich auch fürs Programme schrieben und an die Einstellungen bin ich schon gewöhnt.Alles andere ist aber hochgradiger Unsinn.
Genau so wie ich Programmieren mit einem Variable-Width-Font für Unsinn halte (aber darüber kann man durchaus unterschiedlicher Meinung sein, ich kenne auch Leute die Variable-Width-Font zum Programmieren ganz toll finden, obwohl sie sich das Leben dabei unnötig schwer machen).Aber jeder wie er meint.
Ich hoffe nur es handelt sich um ein Privatprojekt bzw. Auftrag mit Fixpreis, denn was du da machst läuft auf eine sehr effektive Vernichtung von Arbeitszeit hinaus.
-
Wenn man solch eine Datei in Excel öffnet bekommt man auch was Du möchtest