Avatar billede oleoleo1 Nybegynder
15. august 2007 - 08:27 Der er 8 kommentarer og
1 løsning

Oversigt over tekstformatering..

Hey Guys.

Jeg har lavet et java program som scanner rundt i et stort dokument. Dokumentet indeholder formateret tekst og jeg kan få programmet til at skrive teksten ud i konsollen. Da den ikke kan skrive formateringen ud i konsollen skriver den ting som:

\margl1440\margr1440\vieww13640\viewh11780\viewkind0

\f0\b\fs32

\f1\i\b0

Jeg skal i midlertid skrive noget af teksten ud i noget gui og skal derfor bruge formateringen "igen" (/oversætte den). Med andre ord jeg bliver nødt til at kunne tolke det der står. Jeg går ud fra at \f0 betyder font0 og \i betyder kursiv og \b står for bold, men findes der ikke en fuldstændig oversigt et sted? håber på svar...
Avatar billede mikkelbm Nybegynder
15. august 2007 - 08:30 #1
Hvad er det for et dokument?
Avatar billede oleoleo1 Nybegynder
15. august 2007 - 08:42 #2
Det er rtf (mac)
Avatar billede mikkelbm Nybegynder
15. august 2007 - 08:57 #3
Har du kigget på:

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/rtf/RTFEditorKit.html

?
Den har både en read og write metode. Og i read-metoden kan du smide et Document med, som der så bliver læst ind i. På et Document kan du så sige getText.

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/Document.html
Avatar billede oleoleo1 Nybegynder
15. august 2007 - 09:25 #4
intersant! vil lige kigge på det...
Avatar billede oleoleo1 Nybegynder
15. august 2007 - 09:50 #5
hmm...ved ikke om jeg gennemskuer det rigtigt, men det ligner noget input/output stream. Jeg vil ikke rette i dokumentet, men tage relevante stumper af det og udskrive det i en GUI jeg har lavet. Så selv om jeg læste RTF dokumentet med inputstream skal det formentlig alligevel oversættes da outputtet ikke vil være RTF. Dokumentet er også så stort at det tager ca. 1 minut at indlæse det hele i rammen. Når jeg "scanner" mindre dele af det går det rigtigt hurtigt.
Avatar billede mikkelbm Nybegynder
15. august 2007 - 10:18 #6
Hvordan "scanner" du mindre dele?
Avatar billede mikkelbm Nybegynder
15. august 2007 - 10:19 #7
Alternativt kan du jo lave din egen implementation af rtf-formatet :) Men jeg tvivler på, at det er en mindre opgave.
Avatar billede oleoleo1 Nybegynder
15. august 2007 - 10:53 #8
med filescan,

String myDok = (String) fileScan.nextLine();
            dokScan = new Scanner (myDok);
            while (dokScan.hasNext()){


...og noget itterering...

Jeg har lavet det meste af de andre ting der skal bruges og det ser også ud til at virke efter hensigten (7-9-13).
jeg kan også skille f.eks. de "ord" hvor der indgår: \ eller: { ad fra de ord hvor der er ren tekst. Dokumentet er formateret "homogent" så jeg tror ikke det ville være så svært at lave en oversættelse af formateringen, hvis jeg bare vidste hvad der betyder hvad, men hvis det er svært at finde en oversigt må jeg jo gætte/prøve mig frem..
Avatar billede oleoleo1 Nybegynder
16. august 2007 - 15:03 #9
...nå blev utålmodig of gættede/prøvede mig frem, der var ikke så mange forskellige kommandoer så det gik alligevel.
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
Kurser inden for grundlæggende programmering

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