Toon posts:

[vb.net] een ENTER weghalen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een textfile die ik split om een enter, alleen is het zo, dat hij bij de eerste geen enter ziet, maar bij de rest wel.
nu wil ik voordat hij gaat kijken wat het is, de enter die ervoor staat weg haald.

Aangezien het splitsen wel kon met:
words.Split(Chr(13))
dacht ik ook dat ik dit zo weg kon halen:
part = part.Replace(Chr(13), "")
alleen hij haalt nergens iets weg.

Hoe kan dit? En weet iemand een manier om dit wel goed te kunnen doen?

- Frag

[edit]

als ik:
part = part.Remove(0, 1)
gebruik geeft hij een error dat het buiten de string zou vallen, terwijl als ik de string weergeef in een msgbox() hij ze wel normaal ziet.

[ Voor 18% gewijzigd door Verwijderd op 19-06-2003 16:20 ]


  • Coolhva
  • Registratie: Juni 2003
  • Laatst online: 02-08 09:32

Coolhva

Dr. Zero Trust

probeer eens vbCrlf ipv Chr(13)

Verwijderd

Topicstarter
Coolhva schreef op 19 juni 2003 @ 16:20:
probeer eens vbCrlf ipv Chr(13)
helaas is dat het ook niet, hij haalt nog steeds niks weg.
Als ik zeg dat hij alle 'a'tjes weg moet halen doet hij het wel, dus de functie werkt en is goed.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik snap niks van wat je precies wilt, alleen dat je een enter wilt removen dat zou inderdaad zo kunnen
C#:
1
2
string text = "test\ntest\ntest";
text = text.Replace( "\n", "" );


Dus je doet waarschijnlijk wat anders fout

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
rwb schreef op 19 June 2003 @ 16:22:
Ik snap niks van wat je precies wilt, alleen dat je een enter wilt removen dat zou inderdaad zo kunnen
C#:
1
2
string text = "test\ntest\ntest";
text = text.Replace( "\n", "" );


Dus je doet waarschijnlijk wat anders fout
tis trouwens vb.net, maar dat is niet zo'n verschil (hiermee)
en dan nogmaals een beetje uitleg

ik wil uit een string:
"
hallo"
dus MET een enter ervoor, wilt ik de enter weghalen zodat het dit wordt:
"hallo"
maar ik krijg die enter niet weg

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op 19 June 2003 @ 16:24:
[...]

tis trouwens vb.net, maar dat is niet zo'n verschil (hiermee)
en dan nogmaals een beetje uitleg

ik wil uit een string:
"
hallo"
dus MET een enter ervoor, wilt ik de enter weghalen zodat het dit wordt:
"hallo"
maar ik krijg die enter niet weg
Maar wat zijn precies de characters die de "enter" vormen. Is je string niet bijvoorbeeld "\r\nhallo". Want als je string echt "\nhallo" is dan krijg je met .Replace( "\n", "" ); gewoon "hallo" als resultaat.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
de regel: (item is onbelangrijk)
MsgBox("'" & part & "'" & vbCr & item & vbCr & part.Length)
de uitkomst:
Afbeeldingslocatie: http://picserver.student.utwente.nl/getpicture.php?id=161563

[edit]

zoals te zien is part:
'
hier je text'

dit moet dus meer zo:
'hier je text'
en dat lukt niet met deze replace, ook niet met remove

[ Voor 39% gewijzigd door Verwijderd op 19-06-2003 16:34 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 22-08 13:14

TeeDee

CQB 241

Enter vormende karakters:

- vbCrlf
- vbNewline (niet 100% zeker)
- CHR(10)
- CHR(13)
- \n
- \r

:) Dus, er zijn zat.

code:
1
MsgBox("'" & part & "'" & vbCr & item & vbCr & part.Length)

Ben je bij deze regel de lf van vbCrlf niet vergeten?

[ Voor 35% gewijzigd door TeeDee op 19-06-2003 16:35 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
TeeDee schreef op 19 juni 2003 @ 16:34:
Enter vormende karakters:

- vbCrlf
- vbNewline (niet 100% zeker)
- CHR(10)
- CHR(13)
- \n
- \r

:) Dus, er zijn zat.

code:
1
MsgBox("'" & part & "'" & vbCr & item & vbCr & part.Length)

Ben je bij deze regel de lf van vbCrlf niet vergeten?
ik heb gemerkt dat vbCr ook een nieuwe regel geeft zoals ik dat wil dus dat laat ikzo :)
maar nu heb ik dit:
code:
1
2
3
4
5
6
            part.Replace(Chr(10), "")
            part.Replace(Chr(13), "")
            part.Replace(vbCrLf, "")
            part.Replace(vbNewLine, "")
            part.Replace("\n", "")
            part.Replace("\r", "")
en nog steeds staat die enter ervoor :/

Verwijderd

Vooral VbcrLF en Chr(10) worden gebruikt, die moet je zeker testen!

Verwijderd

Topicstarter
textbestand die hij uitleest en op chr(13) splitst:

code:
1
2
3
4
5
6
7
8
9
10
## Menu
Main
Quit
## Guessit
Toet
Blaat
## Mastermind
Nou
Ja
Zeg


let niet op de texten ;)

Verwijderd

Topicstarter
nu ik ff nadenk.. hij splitst op chr(13)
dus die enters zijn wel chr(13), anders kan hij ze daarop niet splitsen toch :?
maar hoe komt het dat hij ze niet weg kan halen?

en bug is vb.net :? :?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 22-08 13:14

TeeDee

CQB 241

Doe eens niets weghalen maar zoiets (dus vervangen):

Visual Basic:
1
part.replace(vbCrlf, "x")

En dan voor alle varianten even nalopen.
Op deze manier kan je zien of het uberhaupt wel werkt.

[ Voor 24% gewijzigd door TeeDee op 19-06-2003 16:42 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
part.Replace(Chr(10), "a")
part.Replace(Chr(13), "b")
part.Replace(vbCrLf, "c")
part.Replace(vbNewLine, "d")
part.Replace("\n", "e")
part.Replace("\r", "f")

maar nog steeds geen replace... :|

[ Voor 19% gewijzigd door Verwijderd op 19-06-2003 16:43 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
anders gebruik je
C#:
1
part.TrimStart( '\n', '\r' );


al die constanten zoals vbNewLine enzo zijn allemaal verschillende combinaties van de '\n' en '\r'( zelfde als chr( 10 ) en chr( 13 ) ).

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
rwb schreef op 19 June 2003 @ 16:45:
anders gebruik je
C#:
1
part.TrimStart( '\n', '\r' );


al die constanten zoals vbNewLine enzo zijn allemaal verschillende combinaties van de '\n' en '\r'( zelfde als chr( 10 ) en chr( 13 ) ).
yes.. dit deed het hem..

dit is het stukje geworden:
part = part.TrimStart("\n", "\r")
part = part.Replace(Chr(10), "")


bedankt jongens (als ik de kabouter reclame :+ )

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op 19 June 2003 @ 16:47:
[...]

yes.. dit deed het hem..

dit is het stukje geworden:
part = part.TrimStart("\n", "\r")
part = part.Replace(Chr(10), "")


bedankt jongens (als ik de kabouter reclame :+ )
Die Replace heb je helemaal niet meer nodig. De TrimStart functie verwijderd alle '\n' en '\r' s al en Chr( 10 ) en Chr( 13 ) is gewoon een andere manier om dat te schrijven.

oftewel
Chr( 10 ) == '\n'
en
Chr( 13 ) == '\r'

[ Voor 12% gewijzigd door Woy op 19-06-2003 17:06 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1