Avatar billede spectual Nybegynder
10. april 2001 - 15:29 Der 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.

Nogen bud?
Avatar billede nute Nybegynder
10. april 2001 - 15:31 #1
hvordan skal brukeren velge ordene ?
Avatar billede spectual Nybegynder
10. april 2001 - 15:40 #2
Ordene bliver sat ind i et nogle <span> tags som der er en onClick event på. Herefter sættes baggrundsfarven på layeret for at markére valget.

Samtidigt registreres det i et array på den plads, der svarer til ordets placering i teksten (f.eks. ord nummer 5).
Avatar billede nute Nybegynder
10. april 2001 - 15:50 #3
med andre ord:

på onClick skal du push\'e en ny verdi inn i en array ?! skal det være mulig å fjerne ordene igjen fra denne array ?
Avatar billede spectual Nybegynder
10. april 2001 - 15:54 #4
Det eneste, der ligger i et array, er om ordene er valgt eller ej.

En mulig løsning, ville være at indsætte et tegn i variabel tekst, der markérer ordene.

Problemet er bare, at det går ikke, fordi brugeren kan se tegnet.

Hvis man nu kunne indsætte usynligt tegn, vil jeg kunne løse det fra dér - tror jeg. :)
Avatar billede nute Nybegynder
10. april 2001 - 15:58 #5
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...

har du et utkast til kode ?
Avatar billede spectual Nybegynder
10. april 2001 - 16:01 #6
Jeg har en færdig kode, som skiller ord ud fra teksten med:

. , ? ! : ;  (space og return).

Hvis jeg kan indsætte et tegn ind foran et ord, som bruger ikke kan se i et textarea, kan jeg gemme brugerens valg på dén måde.
Avatar billede nute Nybegynder
10. april 2001 - 16:04 #7
skal brukeren markere et ord (ved fx ved å dobbeltklikke på det ?) inne i et nytt textarea eller i et span-tag
Avatar billede spectual Nybegynder
10. april 2001 - 16:04 #8
span-tag
Avatar billede nute Nybegynder
10. april 2001 - 16:23 #9
lek deg litt med denne :)

<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;

// -->
</SCRIPT>

/nute
Avatar billede spectual Nybegynder
11. april 2001 - 09:16 #10
nute - du er helt helt galt på den... du har ikke forstået problemet endnu.... :)
Avatar billede nute Nybegynder
11. april 2001 - 11:17 #11
hmmmm....det var da ikke godt...så må du heller forklare det litt bedre ;)
Avatar billede spectual Nybegynder
11. april 2001 - 11:23 #12
Jeg skal prøve:

Det er færdigt er:

en rutine, der finder ord i en tekst. F.eks. vil strengen \"davs og goddag\" give 3 ord, \"davs\", \"og\", \"goddag\".

et system, der lader brugeren vælge et ord. F.eks. kan brugeren vælge \"goddag\".

Problemet er, at hvis bruger efter at have valgt \"goddag\" går ind og ændrer teksten til:
\"davs og god dag\".

Så kan jeg ikke se hvordan jeg skal registrere at der nu er 4 ord og ordet \"goddag\" ikke længere findes.
Avatar billede spectual Nybegynder
11. april 2001 - 11:24 #13
Yderligere:

Hvis brugeren ændrer teksten til \"davs og hav en goddag\".

Her skal \"goddag\" stadigvæk være valgt, selvom det er nu ikke er ord nummer 3 men ord nummer 5.
Avatar billede nute Nybegynder
11. april 2001 - 11:28 #14
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å... :-|

/nute
Avatar billede spectual Nybegynder
11. april 2001 - 11:32 #15
Ja, det er rigtigt nute. Det er også derfor, at jeg bare spørger efter et forslag til løsning, altså ingen kode. Den skal jeg nok selv lave.

Spørgsmålet er, hvordan man nemmest laver det intelligente system.
Avatar billede spectual Nybegynder
11. april 2001 - 11:33 #16
Når alt kommer til alt, håber jeg nok på at een eller anden har en eller anden genial løsning, som jeg ikke har tænkt på.

Det er ret svært at lave sådan et system, men tilsyneladende er der ingen vej uden om.
Avatar billede nute Nybegynder
11. april 2001 - 11:39 #17
hmmm....

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...

/nute
Avatar billede spectual Nybegynder
11. april 2001 - 11:44 #18
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å\")

Det er nok ikke så tung en løsning. :)
Avatar billede spectual Nybegynder
11. april 2001 - 11:47 #19
Problematisk bliver det først, hvis den misser en registrering af en ændring i teksten. Så går det helt sikkert galt.
Avatar billede nute Nybegynder
11. april 2001 - 11:48 #20
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...

/nute
Avatar billede spectual Nybegynder
11. april 2001 - 11:52 #21
Det er helt i orden, nute. Man skal også være ret indviet for at forstå problemstillingen. Men du får nogle point for din interesse :)
Avatar billede nute Nybegynder
11. april 2001 - 12:32 #22
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...
Avatar billede spectual Nybegynder
11. april 2001 - 12:34 #23
Det tror jeg at jeg gør. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester