mmofacts.com

Trennzeichen Tab

gepostet vor 16 Jahre, 8 Monate von Makconner
Ich muss einen string in ein array füllen... dabei muss ich logischerweise ein Trennzeichen festlegen.
Der Fliestext wird in eine Textbox gefüllt und muss nun ausgewertet werden.
OK...
Freizeichen = " "
Zeilenumbruch = "\r\n"
Tab = ?????
ich benötige den Befehl für ein Tab....
gepostet vor 16 Jahre, 8 Monate von Kallisti
\t
abgesehen davon ist Zeilenumbruch so ne Sache... mac \r, windows \rn, *nix \n...
gepostet vor 16 Jahre, 8 Monate von Makconner
Ok ich hätte mich deutlicher ausdrücken müssen.... ich rede hier von einem Eintrag in einer mysql Datenbank , gefüllt durch eine einfaches html Formular..
Nun muss der Inhalt der mysql Datenbank ausgewertet werden.
Die Zeichenfolge wie oben aufgeführt stammt aus einem Export der mysql Datenbank... aber für Tab gibt es nur eine größere Freistelle die wie ein Tab übersprungen wird. Ich kann diese daher nicht richtig greifen...
gepostet vor 16 Jahre, 8 Monate von MasterPyoda
ist man dann nicht mit \r\n auf der sicheren seite, da egal welches betriebssystem im Einsatz ist, ein Zeilenumbruch stattfindet? Zumindest dachte ich immer, dass es so wäre.
Geht Tab \t auf jedem System oder muss man da auch noch unterscheiden? Würde mich auch interessieren.
gepostet vor 16 Jahre, 8 Monate von Nuky
hm.. wenn du regexen zur verfügung hast, \s*
gepostet vor 16 Jahre, 8 Monate von Kallisti
Original von Makconner
Ok ich hätte mich deutlicher ausdrücken müssen.... ich rede hier von einem Eintrag in einer mysql Datenbank , gefüllt durch eine einfaches html Formular..
Nun muss der Inhalt der mysql Datenbank ausgewertet werden.
Die Zeichenfolge wie oben aufgeführt stammt aus einem Export der mysql Datenbank... aber für Tab gibt es nur eine größere Freistelle die wie ein Tab übersprungen wird. Ich kann diese daher nicht richtig greifen...

?? "eine groessere Freistelle die wie ein Tab uebersprungen wird", ist im Normalfall ein... tab? Was sonst? also \t
MasterPyoda: Na eben nicht, oeffne mal ne Windows Textdatei auf nem *nix System im Editor.. da siehst du am Ende jeder Zeile nen tolles Zeichen fuer den Carriage Return.
\t ist ueberall \t
Nuky: er sprach ja von einem Zeichen, das in einem Schritt uebersprungen wird und das kann in einem reinen String nur tab sein?
gepostet vor 16 Jahre, 8 Monate von ThaDafinser
Mehrere Leerzeichen ergeben auch nen Tab...also checken wieviel Leerzeichen es sind kann eventuell auch weiterhelfen?
gepostet vor 16 Jahre, 8 Monate von Kallisti
Original von ThaDafinser
Mehrere Leerzeichen ergeben auch nen Tab...also checken wieviel Leerzeichen es sind kann eventuell auch weiterhelfen?

Nein tun sie nicht.
gepostet vor 16 Jahre, 8 Monate von Makconner
Ok danke Leute....
Ihr beschreibt alle die Möglichkeit ein Tab zu erzeugen, ich aber will aus einem Textdokument ein Tab auslesen. Nur steht da keine Zeichenfilme. Sondern eine größere Freistelle. Diese aber ist auch von Position zu Position unterschiedlich, eben wie ein Tab. Es soll eine Art Tabelle erzeugen, und daher soll es nicht 8 Freistellen, sondern an die nächste Tab-Position springen.
Und sagt jetzt nicht, schau in den Quellcode oder.. lies den mysql-export aus. Das hab ich alles gemacht und auch da ist kein Zeichen was man filtern kann.
Nunja... Ja es ist nicht gut beschrieben, geb ich ja zu. Ich hab das Problem jetzt auch anders gelöst.
Daher danke... aber Fazit... das Problem steht noch im Raum.
gepostet vor 16 Jahre, 8 Monate von duschendestroyer
?
Fazit: die fragestellung ist immernoch unklar
gepostet vor 16 Jahre, 8 Monate von Makconner
Zerbrecht Euch nicht Euren Kopf Herr „ duschendestroyer „ Da ich in meinem anderen Post euch schon mit meinem Wort offensichtlich nicht genügen konnte, verschwendet keinen Gedanken an diese Frage.
gepostet vor 16 Jahre, 8 Monate von Kallisti
Du liest ein tab ebenfalls mit \t aus. Wenn das nicht funktioniert, machst du einen anderen Fehler.

#!/usr/bin/perl
check_tabs("no tabs..\n");
check_tabs("tab?\ttab!\n");
check_tabs("tab yes, tab\n");
check_tabs("even less tabs!\n");
sub check_tabs()
{
my $foo = shift;
if($foo =~ "\t")
{ print "tab detected! - ".$foo; }
else
{ print "no tab detected! - ".$foo; }
}

[chris@eris(pts/3):~]$ perl foo.pl
no tab detected! - no tabs..
tab detected! - tab? tab!
tab detected! - tab yes, tab
no tab detected! - even less tabs!
Wenn es wirklich Leerzeichen sind (dann hast du es wirklich daemlich beschrieben), natuerlich Nukys Ansatz. Andere Moeglichkeiten gibt es eigentlich nicht (ausser Markup abhaengig, aber du sprachst nur von reinen Datensaetzen).
Edit: das final newline vom code-tag nervt (selbst wenn man den closing block in die letzte Zeile schreibt)
gepostet vor 16 Jahre, 8 Monate von Makconner
danke
gepostet vor 16 Jahre, 8 Monate von Nuky
Nunja, im perl-Syntax hast du ja mit \s alle Leerzeichen gematcht, also auch Tabs.
By default, a whitespace character is any character that the C library function isspace() recognizes, though it is possible to compile PCRE with alternative character type tables. Normally isspace() matches space, formfeed, newline, carriage return, horizontal tab, and vertical tab. Perl 5 no longer includes vertical tab in its set of whitespace characters. The \v escape that was in the Perl documentation for a long time was never in fact recognized. However, the character itself was treated as whitespace at least up to 5.002. In 5.004 and 5.005 it does not match \s.

Hatte recht, juhu!
gepostet vor 16 Jahre, 8 Monate von Kallisti
Ich habe nur \t gematcht... Oo
Dass ein tab in \s drin ist, ist klar, aber man will ja keine newlines oder spaces matchen, wenn man nur tabs sucht.

Auf diese Diskussion antworten