Avatar billede bomme Nybegynder
14. marts 2006 - 18:15 Der er 16 kommentarer og
2 løsninger

Omvendt vbCrlf

Hej jeg har en tekst fil som har en dum fejl, den har dumme linie skift og lige inden de linie skift er der et = tegn

Filen ser sådan ud her

Hej med dig hvor=
dan går det med d=
ig eksperten=
.dk styr for v=
ildt

Jeg har prøvet med

text2.text = replace(teksten, "=", \"\")

men der melder VB bare en fejl, den kender ikke \"\" udtrykket. Det jeg mangler er en replace der replacer = med en sletning af linien så overstående kommer til at være i en linie, problemet er at overstående er en del af et dokument så det nytter ikke noget at sletter alle linier men kun slette linier så snart at der er = tegn
Avatar billede kabbak Professor
14. marts 2006 - 18:38 #1
Private Sub Command1_Click()
Dim Str As String
Str = "Hej med dig hvor=" & vbLf _
& "dan går det med d=" & vbLf _
& "ig eksperten=" & vbLf _
& ".dk styr for v=" & vbLf _
& "ildt """
Str = Replace(Str, "=", "")
Str = Replace(Str, vbLf, "")
'eller Str = Replace(Str, vbCrLf, "")
Text2.Text = Str
End Sub
Avatar billede bomme Nybegynder
14. marts 2006 - 19:07 #2
ikke det jeg søger, jeg søger en kommando som sletter en linie, hvis jeg bruger vblf så kommer der bare et mærkeligt tegn i min tekstboks istedet for at slette den linie
Avatar billede sjh Nybegynder
14. marts 2006 - 19:08 #3
kabbak > der er faktis en funktion som hedder "Str(Number)" ikke fordi det ikke virker, men en dag får du måske problemer med noget hvor du har bruget Str som en variabel..

måske skulle man erstat (=LF) i samme hug.. så den ikke laver skade på dem hvor der ikke er "=" efter fuldt af en (LF)


Private Sub Form_Load()
Dim strText As String

  strText = "Hej med dig hvor=" & vbLf _
  & "dan går det med d=" & vbLf _
  & "ig eksperten=" & vbLf _
  & ".dk styr for v=" & vbLf _
  & "ildt." & vbLf _
  & "Start på ny linje.."


  strText = Replace(strText, vbCrLf, vbLf) ' erstat.. (CRLF) med (LF)  for at gøre den til 'unix tilstand'
  strText = Replace(strText, "=" & vbLf, "") ' erstat.. (=LF) med ingen ting. (Fjerner =LF)
  strText = Replace(strText, vbLf, vbCrLf) ' erstat.. (LF) med (CRLF) for at gøre den til 'windows tilstand'

  MsgBox strText
End Sub
Avatar billede kabbak Professor
14. marts 2006 - 19:09 #4
prøv så at bruge den anden

Str = Replace(Str, vbCrLf, "")
Avatar billede kabbak Professor
14. marts 2006 - 19:12 #5
shj > korrekt, det ved jeg, men brugte ikke lige tænkeren ;-))
Avatar billede bomme Nybegynder
14. marts 2006 - 19:23 #6
VBCRLF betyder jo "enter" altså nyt linieskift, jeg skal have slettet en linie
Avatar billede sjh Nybegynder
14. marts 2006 - 19:26 #7
Ja men du skal vel kun ha slettet de linjeskift hvor der er (= og et linjeskift) ??

er det ikke noget email tekst du skal læse da??
Avatar billede hippien Nybegynder
14. marts 2006 - 19:27 #8
måske kan du bruge et ascii backspace tegn ( asc(9) )

ellers kan du bare lav en mid og angive længden som strengs længde minus længden af hvad du vil fjerne.

Du kan også bruge split()
Avatar billede bomme Nybegynder
14. marts 2006 - 19:28 #9
altså bare at jeg kan få slettet en linieskift hvergang = opstår så er jeg tilfreds
Avatar billede sjh Nybegynder
14. marts 2006 - 19:29 #10
Avatar billede kabbak Professor
14. marts 2006 - 19:30 #11
hvordan læser du din tekstfil ind ?
Avatar billede sjh Nybegynder
14. marts 2006 - 19:32 #12
i unix bruger man LF som linjeskift og i windows bruger man CRLF som linjeskift.. og er det en email som kommer fra en unix computer så er linjeskift sikkert LF (er dog ikke sikker)
Avatar billede bomme Nybegynder
14. marts 2006 - 19:34 #13
Hvis du bruger asc(9) så skriver den 57 istedet for =
Avatar billede bomme Nybegynder
14. marts 2006 - 19:36 #14
JA hvis jeg skriver CRLF så kommer der et linie skift, men jeg skal have slettet = og slettet linieskiftet
Avatar billede sjh Nybegynder
14. marts 2006 - 19:38 #15
strText = Replace(strText, "=" & vbCrLf, "")
Avatar billede bomme Nybegynder
14. marts 2006 - 19:43 #16
SJH, ja selvfølgelig, det er mig der har sovet i timen..Smid lige et svar
Avatar billede sjh Nybegynder
14. marts 2006 - 19:52 #17
Når.. :D

Jeg syntes også at kabbak skal ha point.. du kan jo give kabbak=50 og sjh=50 og så tage de 100 point selv.. så tror jeg alle kan være tilfres..
Avatar billede kabbak Professor
14. marts 2006 - 20:28 #18
ok, så et svar da, men et godt arbejde sjh
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