Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Bena ut en sträng i VB

Postades av 2008-10-28 22:24:36 - Pontus Bengtson, i forum access, Tråden har 2 Kommentarer och lästs av 1436 personer

Hej

Jag försöker skapa en funktion för att importera SIE filer till en Access databas.
En SIE fil är en vanlig textfil där raderna börjar med, ex #VER för att indikera att det är en verifikation som skall börja läsas in. Andra entiteter i filen börjar med ex #RAR osv för att identifiera vad man läser in.

Ordningen i en rad är konstant enligt SIE standard, problemet är att det finns utrymmer för uppdelning på raden. En #VER rad består av följande information Verserie, Vernummer, Verdatum och Vertext.

Exempel
#VER 1 1 20080101 "Kundfordringar"

Problemet är främst två, dels att mellanrummet mellan varje entitet kan utgöras av X antal mellanslag eller X antal TAB. Dessutom så kan alla entiteter förutom #VER och Vertext (sista) sitta innanför
"-tecken. Den sista skall sitta inom " =)

Har någon ett bra förslag att bena upp en sådan rad så att man kan plocka ut varje del oavsett antal X och oavsett om entiteten sitter mellan "-tecken?

Stort Tack på förhand!

/Pontus


Svara

Sv: Bena ut en sträng i VB

Postades av 2008-10-29 10:36:27 - Per Hultqvist

Jag gjorde en liten funktion som ersätter en eller flera space/tab med ett pipe-tecken, dock inte vi befinner oss inom citattecken. Funktionen är uppbyggd som en tillståndsmaskin, där tillstånd 0 är startposition, 1 är när vi hittat ett space/tab och kollar om vi hittar fler, samt state 2 är om vi befinner oss inom citattecken. 99 var tänkt som ett felläge t ex om man hittar ogiltiga tecken el dyl...

Därefter borde du kunna göra en enkel Split() på pipetecknet för att splitta upp strängen i dess beståndsdelar.

Jag skrev funktionen i VB.Net så vill du ha den i VB6 så får du ersätta t ex Remove och Insert med motsvarande strängoperationer plus några andra mindre justeringar. Jag har inte VB6 på min maskin tyvärr.

Exempel: Strängen

#VER 1 1 20080101 "Kundfordringar med mera"

skulle bli

#VER|1|1|20080101|"Kundfordringar med mera"

och efter splitten får du följande strängar

#VER
1
1
20080101
"Kundfordringar med mera"


<code>
Public Function ReplaceSpaces(ByVal text As String) As String
Dim pos As Integer = 0
Dim c As Char
Dim state As Integer = 0

Do While True
If pos = text.Length Then Exit Do
c = text(pos)

Select Case state
Case 0 ' Replace first space or tab with a pipe |
If c = Chr(9) Or c = Chr(32) Then
text = text.Remove(pos, 1).Insert(pos, "|") ' Ersätt space/tab med pipe
state = 1
ElseIf c = Chr(34) Then
state = 2
End If
Case 1 ' Keep removing more spaces and tabs
If c = Chr(9) Or c = Chr(32) Then
text = text.Remove(pos, 1)
pos -= 1 ' Minska pos då vi tagit bort ett tecken
ElseIf c = Chr(34) Then
state = 2 ' Här startar ett citat
Else
state = 0
End If

Case 2 ' We are inside a qoute
If c = Chr(34) Then
state = 0 ' Here the quote ends
Else
' Do nothing
End If

Case 99
Throw New Exception("Fel!")
End Select

pos += 1
Loop
Return text
End Function
</code>


Svara

Sv:Bena ut en sträng i VB

Postades av 2008-10-29 23:20:24 - Pontus Bengtson

Hej

Stort tack för iden och kodförslag. Skall "översätta" det och återkommer om hur det gick.

Mvh
Pontus


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 763
27 959
271 761
415
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies