10. april 2001 - 15:29Der er
21 kommentarer og 2 løsninger
Jeg har brug for et løsningsforslag
Hej alle.
Mit problem er lidt svært at beskrive så spørg bare hvis der er forståelsesproblemer.
Jeg har følgende objekter:
(en) tekst = Strengvariabel, som indeholder en tekst fra et TextArea. (en) parser = Funktion, som udskiller ordene fra hinanden fra variablen \"tekst\" via. at kigge på seperatorer, f.eks. space, komma og punktum.
Når ordene er skilt fra hinanden af parseren kan brugeren vælge de enkelte ord og disse valg registreres i et array, som indeholder true eller false.
Problemet er, at man helst ikke skal starte forfra hver gang med at vælge ord hver gang man ændrer i teksten (dvs. variabel \"tekst\").
Når der ændres i \"tekst\", skal parseren udskille ordene igen. Hvis der kommer et nyt ord til, passer array\'et ikke længere.
Jeg mangler et forslag til, hvordan jeg undgå at skulle slette brugerens valg af ord.
kan du ikke splitte strengen på space ? ( noe som er en helt vanlig konvensjon for å skille et *ord* fra et annet *ord*. Et ord er jo faktisk en samling bokstaver som gir mening for avsender og mottaker og alle ord er avskilt med et mellomrom for å skille dem fra hverandre...
<FORM NAME=\"myForm\"> Dette er en liten test </FORM>
<SCRIPT LANGUAGE=\"JavaScript\"> <!--
function display() { if (document.getSelection) { var str = document.getSelection(); } else if (document.selection && document.selection.createRange) { var range = document.selection.createRange(); var str = range.text; } else { var str = \"Sorry, this is not possible with your browser.\"; } alert( str ); }
if (window.Event) document.captureEvents(Event.MOUSEUP); document.onmouseup = display;
det ser faktisk ut til at du skal, for hver endring i ditt tekstfelt, splitte innholdet av din array....dette høres for komplisert til å bare være et 50 point spm. Som jeg forstår det skal du lage et intelligent system som hele tiden ligger å \"lytter\" på hva som skjer i textfeltet...det er litt mer arbeid enn som så... :-|
umiddelbart vil tenker jeg at du må lytte på hva brukeren skriver inn. Hvis brukeren taster inn et mellomrom, så aktiviserer du metoden som splitter innholdet opp i en array. Problemene ligger i at dette blir en krevende løsning ettersom den hele tiden ligger å splitter en streng opp i en array. Et annet stort problem er jo at (som du forteller @ 11/04 2001 11:24:35) systemet skal vite om det blir satt inn noe før et ord og om det ordet evt er valg sånn at en pointer til dette ordet blir endret. Det du antagelig kan gjøre er å lage en array som registrerer hvilken index hvert eneste ord startet på, og deretter kan man ved hjelp av cursorindex finne ut om man setter ord mellom eksisterende ord eller på slutten av teksten. I mine ører høres dette litt tungt ut, men jeg tror nok at Javascript er et for fattig språk til at dette kan la seg gjøre på så mange forskjellige måter...
Jeg behøver ikke at køre \"parseren\" (den der finder ord) hver gang brugeren taster.
Men den skal som du siger registrere hvor ordene starter (nemt, det gør den i forvejen) og hvor brugeren ændrer i teksten (nemt, det er jeg godt i gang med).
Så kan den vel bare ændre på det array du snakker om her (Citat: \"Det du antagelig kan gjøre er å lage en array som registrerer hvilken index hvert eneste ord startet på\")
hmmm....jeg tror desverre jeg må melde meg ut av diskusjonen...
alt jeg sier har du jo laget før, så det er ikke noe poeng for meg å fortsette. En annen ting er at jeg rett og slett ikke fatter hva du prøver på. Hvis du har kommet så langt som dett skal det nok ikke være så vanskelig å komme lenger...
takker....det var det jeg regnet med...at for å forstå problemet, så må man nok sitte å tegne og forklare, men det er jo litt vanskelig over nettet :) men takk for points, og håper du finner en løsning på det...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.