Tabulatoren auf Richtextbox nach HTML
MacGreg
- programmiertechnik
0 Axel Richter0 MacGreg0 wahsaga0 Axel Richter0 wahsaga
0 Sven Rautenberg
Hallo SelfHTML!
In einem bestehenden Access Projekt wird in einer RichTextBox ein Bericht eingegeben. Dieser wird anschließend als HTML gespeichert. Soweit so gut. Allerdings soll es nun möglich sein in dieser Richtextbox mit Hilfe der Tabulatortaste Daten bündig anzuordnen. Soweit auch kein Problem. Allerdings bereitet mir das konvertieren des in der RichTextBox gespeicherten Texts Kopfschmerzen :-)
Hat jemand eine Idee wie ich es schaffe, dass Daten die durch Tabulatoren bündig angeordnet wurden, so auch in einem HTML Dokument wiederzufinden sind? Habe schon an die Möglichkeit leerer Tabellenzellen gedacht, dabei besteht allerdings das Problem, dass dem umwandelnden Script ja nicht unbedingt klar ist wo denn nun die durch Tabulatoren getrennten Daten aufhören, wo also die Tabelle durch </tr></table> zu beschließen ist.
Ich freue mich auf Anregungen und Ideen,
MacGreg
Hallo,
Hat jemand eine Idee wie ich es schaffe, dass Daten die durch Tabulatoren bündig angeordnet wurden, so auch in einem HTML Dokument wiederzufinden sind?
Die einfachste Möglichkeit ist, den Text einfach in ein PRE-Element zu legen.
Sonst bietet sich die CSS-Eigenschaft margin-left für Einrückungen an.
Bsp.:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Text mit Einrückungen</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<style type="text/css">
<!--
p {margin:0; padding:0;}
.tab1 {margin-left:1.25cm;}
.tab2 {margin-left:2.5cm;}
-->
</style>
</head>
<body>
<h1>Text mit Einrückungen, tab-stops: 1,25cm oder 5grad</h1>
<pre>
Das ist normaler Fließtext.
Das ist mit einem Tab(^t) eingerückter Text.
Das ist mit zwei Tab(^t) eingerückter Text.
Das ist mit einem Tab(^t) eingerückter Text.
</pre>
<p>Das ist normaler Fließtext.</p>
<p class="tab1">Das ist mit einem Tab(^t) eingerückter Text.</p>
<p class="tab2">Das ist mit zwei Tab(^t) eingerückter Text.</p>
<p class="tab1">Das ist mit einem Tab(^t) eingerückter Text.</p>
</body>
</html>
viele Grüße
Axel
Hi Axel!
Auf die Idee mit CSS bin ich auch schon gekommen und das ganze Problem wäre auch keines wenn nicht "der Anwender" auf die Idee kommen könnte nicht nur einen Absatz einzurücken, sondern auch noch ein "tabellarisches Layout" mit Tabstops zu basteln. Denn dann könnte ich zwar die durch Tabs getrennten Daten in einzelne Divs packen und deren horizontalen Abstand mit margin festlegen, aber spätestens in der darunterliegenden Zeile wären die Daten nicht mehr bündig, da ich ja nicht garantieren kann, dass die Daten in jeder "Zelle" gleich lang sind (also die Anzahl der Buchstaben / Zeichen).
Weitere Ideen? :-)
MacGreg
Hallo,
Auf die Idee mit CSS bin ich auch schon gekommen und das ganze Problem wäre auch keines wenn nicht "der Anwender" auf die Idee kommen könnte nicht nur einen Absatz einzurücken, sondern auch noch ein "tabellarisches Layout" mit Tabstops zu basteln.
Das musst Du verbieten ;-)). Ansonsten wird es _sehr_ komplex, siehe unten.
Denn dann könnte ich ...
Nein, _dann_ musst Du eine HTML-Tabelle daraus bauen. Das wird aber schwierig, weil der Nutzer ja nicht nur:
Name[ ^t ]Vorname[ ^t ]Geburtsdatum
Müller[ ^t ]Klaus[ ^t ]20.04.1967
(Das wäre ja einfach.)
sondern auch
Name[ ^t ][ ^t ][ ^t ]Vorname[ ^t ][ ^t ]Geburtsdatum
Müller[ ^t ][ ^t ][ ^t ]Klaus[ ^t ][ ^t ]20.04.1967
Maier-Niederwürschnitz[ ^t ]Rosalinde-Marianne[ ^t ]20.05.1968
benutzt haben kann.
Zumindest musst Du also auf einer richtig[TM] formatierten Tabelle mit Tabstops bestehen.
viele Grüße
Axel
Hi!
(Das wäre ja einfach.)
yep
Name[ ^t ][ ^t ][ ^t ]Vorname[ ^t ][ ^t ]Geburtsdatum
Müller[ ^t ][ ^t ][ ^t ]Klaus[ ^t ][ ^t ]20.04.1967
Maier-Niederwürschnitz[ ^t ]Rosalinde-Marianne[ ^t ]20.05.1968
ja, leider kann der Anwender auch solche "Schweinereien" machen :|
Zumindest musst Du also auf einer richtig[TM] formatierten Tabelle mit Tabstops bestehen.
und das bedeutet im Klartext?
Liebe Grüße,
MacGreg
Hallo,
ja, leider kann der Anwender auch solche "Schweinereien" machen :|
Zumindest musst Du also auf einer richtig[TM] formatierten Tabelle mit Tabstops bestehen.
und das bedeutet im Klartext?
Dass Du solche Schweinereien unterbindest ;-)) oder zunächst mehrere aufeinanderfolgende ^t wie eins betrachtest und dann eine Tabelle daraus baust.
Name[ ^t ][ ^t ][ ^t ]Vorname[ ^t ][ ^t ]Geburtsdatum
Müller[ ^t ][ ^t ][ ^t ]Klaus[ ^t ][ ^t ]20.04.1967
Maier-Niederwürschnitz[ ^t ]Rosalinde-Marianne[ ^t ]20.05.1968
wird zu:
Name[^t]Vorname[^t]Geburtsdatum
Müller[^t]Klaus[^t]20.04.1967
Maier-Niederwürschnitz[^t]Rosalinde-Marianne[^t]20.05.1968
und dann zu:
<td>Name</td><td>Vorname</td><td>Geburtsdatum</td>
<td>Müller</td><td>Klaus</td><td>20.04.1967</td>
<td>Maier-Niederwürschnitz</td><td>Rosalinde-Marianne</td><td>20.05.1968</td>
viele Grüße
Axel
viele Grüße
Axel
Axel,
Dass Du solche Schweinereien unterbindest ;-)) oder zunächst mehrere aufeinanderfolgende ^t wie eins betrachtest und dann eine Tabelle daraus baust.
Wobei dann keine Zelle leer sein darf.
Name[ ^t ][ ^t ][ ^t ]Vorname[ ^t ][ ^t ]Geburtsdatum
Müller[ ^t ][ ^t ][ ^t ][ ^t ][ ^t ][ ^t ]20.04.1967
Maier-Niederwürschnitz[ ^t ]Rosalinde-Marianne[ ^t ]20.05.1968
Wird sonst zu:
Name[^t]Vorname[^t]Geburtsdatum
Müller[^t]20.04.1967
Maier-Niederwürschnitz[^t]Rosalinde-Marianne[^t]20.05.1968
Gunnar
hi,
Hat jemand eine Idee wie ich es schaffe, dass Daten die durch Tabulatoren bündig angeordnet wurden, so auch in einem HTML Dokument wiederzufinden sind?
Die einfachste Möglichkeit ist, den Text einfach in ein PRE-Element zu legen.
Sonst bietet sich die CSS-Eigenschaft margin-left für Einrückungen an.
halte ich beides für wenig hilfreich.
wie vielen zeichenbreiten ein tab entspricht, ist eine einstellung des benutzers an seinem system.
also muss davon ausgegangen werden, dass diese auf einem anderen system einen anderen wert hat.
und somit scheitert ein "ausrichten" über tabs zwangsläufig schon bei recht simplen konstrukten.
gruß,
wahsaga
Hallo,
und somit scheitert ein "ausrichten" über tabs zwangsläufig schon bei recht simplen konstrukten.
Nicht, wenn es keine "Konstrukte" geben darf, sondern nur unterschiedlich weite Einrückungen von links.
Dass die dann nicht den Einrückungen im RTF in mm entsprechen ist klar. Allerdings kann man die gewünschte Struktur so erhalten.
viele Grüße
Axel
hi,
und somit scheitert ein "ausrichten" über tabs zwangsläufig schon bei recht simplen konstrukten.
Nicht, wenn es keine "Konstrukte" geben darf, sondern nur unterschiedlich weite Einrückungen von links.
Dass die dann nicht den Einrückungen im RTF in mm entsprechen ist klar. Allerdings kann man die gewünschte Struktur so erhalten.
nein, sehe ich nicht so.
schon dein eigenes beispiel aus https://forum.selfhtml.org/?t=101854&m=625929 wiederlegt dich da:
Name[ ^t ][ ^t ][ ^t ]Vorname[ ^t ][ ^t ]Geburtsdatum
Müller[ ^t ][ ^t ][ ^t ]Klaus[ ^t ][ ^t ]20.04.1967
Maier-Niederwürschnitz[ ^t ]Rosalinde-Marianne[ ^t ]20.05.1968
hier bist du offenbar von einem tab-stop nach jedem neunten zeichen ausgegangen (auch wenn auch das schon wieder in der ersten zeile nach Name nicht hinkommt ...)
ein user, der seinen tab-stop aber erst nach jedem 12. zeichen eingestellt hat, käme hier schon mit
Name[ ^t ][ ^t ]Vorname[ ^t ][ ^t ]Geburtsdatum
Müller[ ^t ][ ^t ]Klaus[ ^t ][ ^t ]20.04.1967
Maier-Niederwürschnitz[t]Rosalinde-Marianne[ ^t ]20.05.1968
aus.
wenn du diese eingabe jetzt so bei einem user wieder anzeigen lässt, der nach dem 9. zeichen den tabstop eingestellt hat, käme da
Name[^t ][ ^t ]Vorname[][ ^t ]Geburtsdatum
Müller[t][ ^t ]Klaus[^t][ ^t ]20.04.1967
Maier-Niederwürschnitz[ ^t]Rosalinde-Marianne[ ^t ]20.05.1968
heraus ...
gruß,
wahsaga
Hallo,
Dass die dann nicht den Einrückungen im RTF in mm entsprechen ist klar. Allerdings kann man die gewünschte Struktur so erhalten.
nein, sehe ich nicht so.
schon dein eigenes beispiel aus https://forum.selfhtml.org/?t=101854&m=625929 wiederlegt dich da:Name[ ^t ][ ^t ][ ^t ]Vorname[ ^t ][ ^t ]Geburtsdatum
Müller[ ^t ][ ^t ][ ^t ]Klaus[ ^t ][ ^t ]20.04.1967
Maier-Niederwürschnitz[ ^t ]Rosalinde-Marianne[ ^t ]20.05.1968
Ja, das war ja auch ein Negativbeispiel. Außerdem spreche ich auch _nicht_ von tabellarischen Darstellungen, sondern _nur_ von Fließtexteinrückungen _von links_, also _keine_ "Konstrukte".
"Konstrukte", wie:
..........................L.....................L.............
Name[ ^t ]Vorname[ ^t ]Geburtsdatum
Müller[ ^t ]Klaus[ ^t ]20.04.1967
Maier-Niederwürschnitz[^t]Rosalinde-Marianne[^t]20.05.1968
müssten in eine Tabelle konvertiert werden.
Das geht auch, wenn der Nutzer sich an die Konventionen der Textverarbeitung mit Tabulatoren hält, es also so macht wie in meinem jetzigen Positivbeispiel.
viele Grüße
Axel
Moin!
Hat jemand eine Idee wie ich es schaffe, dass Daten die durch Tabulatoren bündig angeordnet wurden, so auch in einem HTML Dokument wiederzufinden sind?
Ich denke, du wirst einen Nichtproportionalfont wie Courier annehmen bzw. einsetzen müssen, und außerdem die in Access verwendete Tab-Breite in Leerzeichen wissen.
Aus diesen beiden Komponenten kannst du jedes Tab in die korrekte Anzahl von oder Leerzeichen umformen und dann in ein <pre> ausgeben. Bedenke, dass 1 Tab != x Leerzeichen - die Zahl rechnet sich aus der vorhergehend vorhandenen Zahl von Zeichen.