neonator
ich hab da so ein "editor" gebastelt... das ist einfach ein eingabefeld, mit dem man dateien online ändern kann...
ich kam dann auf die idee, den "editor" ein bisschen code-freundlicher zu machen und hab so zeilen-nummern eingebaut... dann kam mir in den sinn, dass ja auch noch wordwrap gibt, das heisst, die zeile wird umgebrochen, aber in realität (so wie sie gespeichert wird) wird sie nicht umgebrochen...
da hab ich so mit pfeilen und so eingebaut, und man kann sogar runterscrollen wenn der text grösser ist als das eingabefeld...
das problem: es spinnt immer...
gebt mal z.B. einfach text ein (in der ersten zeile) ohne einen zeilenumbruch, bis er automatisch vielleicht 4 zeilen gemacht hat.... er meint, es sei die zeile 2, die länger ist als eine "visuelle zeile"...
wenn man dann vor der zeile leere zeilen einfügt und wieder wegnimmt, verhalten sich die zahlen total unregelmässig...
vielleicht habt ihr einen tip, wie mans besser machen könnte...
das teil ist für die flecom-webspace verwaltung...
hier hab ich mal den editor hochgeladen:
http://www.azv-bern.ch/~jones/
den js-teil ist im source...
hoffe ihr könnt mir ein bisschen helfen
jones
Chris Hunter
jo, feine sache, hübsche idee. hab mal ein bischen rumbrobiert. bei mir geht aber alles ganz gut. nur ein bischen zeitverzögert. keine ahnung warum das so ist... kenn mich abver mit javascript auch nicht wirklich soooo gut aus, als das ich sagen könnte warum das nicht klappt...
neonator
hm.. es ist eher ein wunder, dass es überhaupt funktioniert.. habs zwar gebastelt, aber so richtig den durchblick hab ich net :\
naja.. einmal musste ich irgendwie mit dem array was umbasteln... dann gings besser.. aber bei mir spinnt es immer noch...
was hast du für ein rechner?
bei jeder zeile aus, ob sie mehrere "visuelle zeilen" enthält... und das bei jeder taste, die du drückst...
hab schon ne sperre eingebaut, dass ers nicht irgendwie in einer sekunde 10x macht oder so, das wäre nicht so sinnvoll
naja... es funktioniert so halb... hast du noch ne idee was bei dem editor auch noch rein sollte?
z.B. farbwähler mach ich wahrscheinlich noch.. dass er dir die hex-farbangabe ausgibt...
sonderzeichen, wie bei der alten version von flecom kommen auch noch...
jones
Chris Hunter
also ich hab n P4 1.3 GHz mit Win 98 ME und IE. falls dir das was weiterhilft.
von dem script hab ich null plan, wenn ich ehrlich sein soll. kann dir somit auch wenig tips geben. aber der editor gefällt mir. sehr innovativ
neonator
hehe.. danke
naja, ich hab ein amd 1.5ghz (winxp), geht mehr oder weniger gut...
das problem sieht man eigentlich beim normalen schreiben nicht, nur wenn man gaaanz lange zeilen macht (die er mehrere male umbricht)... dann sollte auf der ersten zeile die zeilenzahl stehen, auf den umgebrochenen aber nur so ein pfeil...
tja, es funzt mehr oder weniger, also was solls.. man kann sich einfach nicht drauf verlassen :\
aber hast du noch eine idee, was für tools man einbauen könnte?
hab mir gedacht, ein schalter, wo man das word-wrapping (automatischer zeilenumbruch) ein- und ausschalten kann... hats doch bei normalen editor auch...
jones
Andun
ICh hab da auch große Fehler. Hier ist ein Bild davon.
Den Umbruch mit Enter hab ich hinter den m`s gemacht. Die müssten also in einer Zeile sein.
DAs funzt wohlk net so ganz.
neonator
genau das mein ich.. aber ich kanns mir nicht so richtig erklären :\
daHooligan
hy, ich hab zwar auch keinen durchblick, ewas java(script) betrifft, hab aber ne idee, wie du die zeilenumbrüche richtig reinkriegst.
Ein Absatz ist doch im Prinzip niy anderes als ein Carriage Return, hab leider grad die Ascii-Werte net im kopf, du kannst doch evtl. jedes zeichen wenn es geschrieben wird darauf überpfrüfen, ob es ein Carriage-Return ist dun danach deine Nummerierung richten. So im Prinzip.
neonator
hmm...
wäre noch logisch...
also als Carriage-Return meinst du, wenn man enter drückt, also \r\n , oder nicht?
das problem ist, dass er bei word-wrapping eine neue zeile macht, aber dort kein zeichen setzt...
ich habs so gemacht, dass er nach 67 zeichen das letzte leerzeichen sucht, und dann dort eigentlich umbricht.. d.H. er rechnet es mit js nochmal nach..
aber irgendwie funzt es gar net mehr so richtig
jones
ThiefMaster
| Zitat: |
| also als Carriage-Return meinst du, wenn man enter drückt, also \r\n , oder nicht? |
\n sollte reichen. die ascii codes sind 10 und 13
| php: |
1:
2:
3:
|
<?php
echo 'n='.ord("\n")."\nr=".ord("\r");
?> |
|
->
\n=10
\r=13
neonator
hm...
aber das problem ist immer noch, wenn er autmatisch die zeile (nur viesuell) umbricht, gibt es kein zeichen mit carriage-return...
ich brauch das schon für die richtigen zeilen zu trennen, aber das ist ja nicht das problem...
jones
daHooligan
ja klar... beim ato-umbruch gibts kein carriage-return, er soll auch nur dann hochzählen, wenn in der zeile davor ein CR ist.
Ich kann das grad net in JavaScript posten, aber von der Logik her muss das so aufgebaut sein, dass er die 1 schreibt, dann den text und erst dann die zwei, wenn ein CR kommt. Ich weiss aber net, ob man mit JavaScript ein CR "erkennen" kann. Bei VB, Pascal, etc. gehts aber auf jeden Fall. Das CR ist ja nix anderes als zwei aufeinanderfolgende Ascii-Werte, die weiss ich aber grad net auswendig, kannste aber ganz einfach in nem Hex-Editor sngucken, wenn du ne Datei öffnest, in der du einfach einen Absatz gemacht hast, da müssten dann zwei Hex-Werte drinstehen und die muss du dann in den Script einbauen.
[EDIT]
Evtl. kannste ja bei Eingaben direkt den Tastaturspeicher auslesen.
[EDIT]
Chris Hunter
thief hats schon gepostet gehabt:
\n=10
\r=13
neonator
ich brauche keinen ascii-wert, ich brauche lediglich \n bzw. \r\n ... das reicht....
das mit dem CR brauchte ich schon von anfang an... aber das ist nicht das prob...
die zahlen sind eigentlich in einer tabelle, die eine feste position hat (linke obere ecke der textare) und genau die gleiche höhe wie die textarea... wenn die textarea gescrollt wird, scrollt das table mit...
es wird immer wieder aktualisert.. d.H. es nimmt den gesammten inhalt der Textarea und schaut, wieviele CR das es hat... dann macht es dazu die zeilennummern...
das problem ist aber, dass manchmal die zeile "visuell" umgebrochen wird, das heisst es gibt kein CR...
-> es stimmt nicht mehr... wenn z.B. die zeile 3 länger als 67 zeichen (oder so) ist, macht es eine visuelle neue zeile ohne CR, und dann heisst die 2. v.-zeile der zeile 3 die zeile 4.. das heisst die reale zeile 4 ist die zeile 5...
ist ein bisschen kompliziert :\
ich hab probiert das prob so zu lösen: bei jeder zeile wird analysiert, ob sie länger als 67 zeichen ist.. wenn ja wird das letzte leerzeichen von zeichen 67 rückwärts gesucht, dort wird die zeile visuell umgebrochen... dann löscht er das vorher und erhöht eine variable und dann gehts von vorne los mit der zeile analysieren...
so etwa gerafft? dann sollte es (wie bei weaversleave) bei einer zeile, die mehr als 1 v.-zeile hat, ab der 2te statt eine zahl » anzeigen...
so, *maleinlangerpostgeschriebenhab*
hoffe das ihr es verstanden habt, ist ein bischen ein "gstuss"
jones
daHooligan
mach doch einfach eine waagerechten scrollbalken
neonator
hab ich mir auch schon überlegt :\
da müsste ev. die textarea ein bisschen grösser sein..
oda net?
jons
Chris Hunter
nö. hast doch dann den scrollbalken. machste einfach wrap=off aber ich glaube das ist soweiso standart einstellung...
neonator
ne, standard ist wrap="virtual" bzw. wrap="soft"
...
:\ naja.. mal schaun...