Avatar billede steensommer Praktikant
25. januar 2009 - 08:51 Der er 11 kommentarer og
1 løsning

Kun anvende dele af streng

Hej

Jeg har lavet følgende for at data fra SQL database ind i et worddokument - det fungerer fint!
Jeg ville imidlertid gerne undgå alt før (og inklusiv) tegnet ":" (altså kolon). Kan nedenstående modificeres lidt:

        Dim Command As New SqlCommand("SELECT * FROM " & Database & "  WHERE [Patient nr] = '" & PatientID & "'", Connection)
        Dim reader As SqlDataReader = Command.ExecuteReader()
        If reader.Read() Then
            If Not reader.IsDBNull(1) Then
                CNS0 = OPDato & vbCrLf & vbTab & reader.GetString(1).ToString
            End If
            If Not reader.IsDBNull(8) Then
                CNS1 = DateAdd(DateInterval.Day, 1, OPDato) & vbCrLf & reader.GetString(8).ToString
            End If
Avatar billede steensommer Praktikant
25. januar 2009 - 09:00 #1
Ved nærmere eftertanke skal alt tekst efter en linieskift og kolon fjernes!!!
Avatar billede jens_bach Nybegynder
25. januar 2009 - 12:24 #2
har ud en linje som den ser ud og en hvordan du vil have den skal se ud
Avatar billede steensommer Praktikant
25. januar 2009 - 13:13 #3
Den kan indeholde hvad som helst men et afsnit starter typisk med:

AN KP:

...eller tilsvarende men ALT før (og inkl) kolon skal fjernes!
Avatar billede arne_v Ekspert
25. januar 2009 - 16:15 #4
som:

        Dim s As String = "AN KP:bla bla bla"
        Dim ix As Integer = s.IndexOf(":")
        Dim s2 As String = s.Substring(ix + 1)

?
Avatar billede steensommer Praktikant
25. januar 2009 - 16:36 #5
Jeg kan ikke lige gennemskue hvad ovenstående gør! Fjerner den alle de steder i teksten hvor en linie starter med eksempelvis: "AN KP:"
Avatar billede arne_v Ekspert
25. januar 2009 - 16:49 #6
s er "AN KP:bla bla bla" og s2 bliver "bla bla bla"

hvis der er flere forskellige linier, så skal den udføres på hver linie
Avatar billede steensommer Praktikant
25. januar 2009 - 17:00 #7
Der kan være MANGE linier og hvordan gør man så det?
Avatar billede arne_v Ekspert
25. januar 2009 - 17:12 #8
Svært at sige.

Det fremgår nemlig ikke klart om du har en række per linie eller nogle af felterne
i en række kan indeholde flere linier.
Avatar billede steensommer Praktikant
25. januar 2009 - 17:17 #9
Det drejer sig om EN tekstbox hvor der frit kan skrives. Hver bruger der skriver starter med vagttype efterfulgt af initialer og kolon.
Man kan altså skrive frit og ikke begrænset til en linie
Avatar billede arne_v Ekspert
25. januar 2009 - 19:33 #10
Prøv med følgende teknik:

    Dim txt As String = "A:bla bla" & vbCrLf & "B:mere bla bla" & vbCrLf & "C:igen igen"
        Dim lines() As String = txt.Split(vbCrLf.ToCharArray(),  StringSplitOptions.RemoveEmptyEntries)
        For i As Integer = 0 To lines.Length-1
            Dim lineix As Integer = lines(i).IndexOf(":")
            lines(i) = lines(i).Substring(lineix + 1)
        Next
        txt = String.Join(vbCrLf, lines)
Avatar billede steensommer Praktikant
25. januar 2009 - 21:36 #11
Jamen det fungere jo perfekt. Jeg er ikke helt klar over hvordan du har gjort det MEN jeg bøjer hovedet i respekt :-)....SVAR lige.....TAK!!
Avatar billede arne_v Ekspert
25. januar 2009 - 21:57 #12
svar
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