Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Till, > > > ... > > (nicht zuletzt wegen eines böse verwurmten Rechners) ... > > Das passiert schnell, wenn man M$-Produkte für's Web benutzt. > Darum verwende ich keine M$-Produkte wenn es um die Web-Kommunikation geht. > (Browser & Mail, Proxy etc.) > > > Die bekannte compstr()- Funktion stellt leider nur fest, ob zwei Strings identisch sind, nicht aber > > ob größer oder kleiner. > > Stimmt, das kann sie nicht. Jedoch kann man die Funktion sehr leicht modifizieren: > <code>//--Strings vergleichen----------------------------------- > function comp2 ( byte s1[], byte s2[]) returns int > //-------------------------------------------------------- > // Rückabe: -1 s2 ist "keiner", 1= s2 ist "größer", 0=s2 ist gleich s1 > {byte i; > for i=0 ... 29 if s1[i]!=s2[i] break; > if i==30 > return 0; > else > { > if s1[i]<s2[i] return 1; else return -1; > } > }</code> > > Natürlich ist das nur ein Bytevergleich. Denn es werden nur die Bytewerte > der einzelnen Zeichen verglichen. > Wenn unabhängig von Groß-Kleinschreibung verglichen werden soll, muß > man die Zeichen erst in ein definiertes Format wandeln. > Also z.B. nur Kleinschreibung. > Hier kann man die Funktion mit strx.LCase() kombinieren oder > man richtet ein Konstantenarray mit bis zu 256 Elemtenen ein. > Die Index-Nr. des Arrays entspricht dem ASCII-Code und der Inhalt > der Reihenfolge, also der Indexposition der einzelnen Zeichen: > <code> > const sort[]=0,...,0x30/*ASCII 0x30*/,...,0x39/*ASCII 0x39*/,..., > ...,0x41/*A*/,...,...,0x5A/*Z*/,... > ...,0x41/*a=0x91*/,...,...,0x5A/*z=0x7A*/,...,...;</code> > So kann man z.B. auch bestimmen, wie mit Umlauten umgegangen werden soll, oder > daß alles Sonderzeichen in der Reihenfolge zuerst kommen sollen. > > > > Man müßte also Zeichen für Zeichen in ASCII- Werte umwandeln und die dann vergleichen. > > In BASIC wäre das z.B. a = asc(x$(n,n)). > > Leider habe ich in C2 keine Funktion gefunden, die das kann. > > Als Grundregel gilt: > Funktionen, die es nicht gibt, kann man meist sehr einfach selbst schreiben. > Jedoch hättest Du nur die Funktion strx.getchar() ansehen müssen. > Diese gibt das Zeichen der angegebenen Position zurück. > > Wenn man die Funktion mit dem oben genannten Array kombiniert, > kommt folgendes heraus: > <code>function getCharSortPos(byte s[], byte pos) returns byte > { > return sort[s[pos]]; > }</code> > > MfG André H.