Avatar billede blueman Nybegynder
27. oktober 2002 - 20:03 Der er 7 kommentarer og
1 løsning

Linieskift

Hej,

Hvorfor bliver linieskift i en string nogle gange til en firkant og andre gange ikke?

Problemet er at jeg har noget text i en richTextBox som jeg gemmer i en fil: Print freefile# ME.RTB.Text (Det er vigtigt at det kun er selve teksten der bliver gemt og ikke rtf formatet)

På nogle maskiner bliver filen gemt 'rigtigt' dvs. den ser sådan her ud når man åbner den i notepad:

  Linie1
  Linie2
  Linie3


Men på andre maskiner kommer den sådan her ud:
 
  Linie1[]Linie2[]Linie3

[] er en firekant( hvis jeg paster indholdet af filen med firkanterne her så bliver linieskift sgu indsat!!!)

Hvad sker der? Hvordan slipper jeg for de skide firkanter?

PS jeg bruger VB6. WIN 2000 og XP (probelemt set under begge)
Avatar billede tubber Juniormester
27. oktober 2002 - 20:49 #1
Prøv at slutte strengen og starte den igen efter du har sat et linieskift ind......

vbCrLf =  linieskift

Eks. på streng....

MsgBox "Første del af min streng!" & vbCrLf & "Anden del af min streng!" & vbCrLf & "Trejde del af min streng!"

Bliver linien for lang og uoverskuelig kan man gøre følgende....

MsgBox _
"Første del af min streng!" & vbCrLf & _
"Anden del af min streng!" & vbCrLf & _
"Trejde del af min streng!"

/Tubber
Avatar billede blueman Nybegynder
27. oktober 2002 - 21:02 #2
Tak for forslaget men det duer ikke rigtigt for jeg har 5-600 linier text i en rich text box som bliver opdateret dynamisk. Jeg har brug for at gemme teksten i en txt fil med linieskift. Har prøvet at bruge
 
    Me.RTB.SaveFile "C:\Filename.txt" , rtfText

Men resultatet bliver det samme. Når jeg åbner txt filen på nogle pc'ere står det ud i med linieskiftene som firekanter. På andre ser det rigtigt ud!?
Avatar billede tubber Juniormester
27. oktober 2002 - 21:37 #3
Lav en rutine der chekker for hver gang der bliver trykket Enter.....

når der trykkes enter skiftes det ud med " & vbCrLf & "

Så gennemtvinger du dit linieskift......
Avatar billede tubber Juniormester
27. oktober 2002 - 21:43 #4
ved ikke om det virker, men et forsøg er det da :O)

Replace(Text1.Text, chr$(13), vbCrLf)

noget i den retning.......
Avatar billede Nybegynder
27. november 2002 - 07:32 #5
Har du husket at sætte Multiline i richTextBox
Avatar billede blueman Nybegynder
15. januar 2003 - 12:25 #6
ja
Avatar billede arnvig Nybegynder
16. januar 2003 - 13:05 #7
Jeg ved ikke om du har fået løst problemet, men nogen gange er det ikke nok med en CHR$(13) (carriage return), du skal også have en linefeed CHR$(10)

Det er et levn fra gamle tider da man havde printere, som både skulle have besked på at rulle papiret en side frem og føre skrivehovedet tilbage til udgangspunktet. Visse programmer kan ikke finde ud af CHR$(13) alene.

Jeg laver som regel en variabel crlf således :

DIM CRLF as string
crlf = Chr$(13) & Chr$(10)
Avatar billede blueman Nybegynder
16. januar 2003 - 16:06 #8
problemet løst på anden vis.

Arnvig du får point for en god historie! (men jeg tror nu ikke at problemt skyldes det)
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