Avatar billede pezzo Nybegynder
14. juli 2003 - 12:06 Der er 24 kommentarer og
1 løsning

Splitning af sætning

Hej!

Jeg har lidt problemer med at opsplitte en sætning som eks. denne her:

07-07-03,,"F5 PayCard","250,00","0,00","250,00",,"1.937,50",48,17

Problemet er at den jo skal opdele ved tegnt > ,

Men når der eks. står "250,00" deler den det op i "250 og ,00". Hvordan kan jeg undgå det. "250,00" skal jo gerne være 1 array.
Avatar billede krogstrup Nybegynder
14. juli 2003 - 12:09 #1
Har du mulighed for at vælge en anden seperator ?

Altså at sætningen bliver skabt med f.eks. semikollon som seperator ?

Umiddelbart er komma en rigtig dårlig seperator når du skal arbejde med tal !!!
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:11 #2
Ja ved jeg godt, men det er fordi mit regnskabsprogram eksporter komma som seperator, så kan jeg ikke undgå.

Men det må sq da kunne lade sig gøre!
Avatar billede cesil Nybegynder
14. juli 2003 - 12:12 #3
Den burde ikke splitte ved 250,00. Du har jo "" rundt om.
Avatar billede cesil Nybegynder
14. juli 2003 - 12:13 #4
får du en fejl
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:13 #5
Den udskriver noget helt forkert. Bruger jeg en anden seperator virker det, men kan jeg ikke i det regnskabsprogram, kun manuelt og gider jeg ik
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:15 #6
Nej ingen fejl, den udskriver bare noget forkert joh!
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:20 #7
Se selv her hvordan det kommer til at se ud når jeg vil udskrive nogle af dem:

http://www.pezzo.net/split.asp
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:20 #8
Min kode er sådan her:

arrM     = split(lineWrite,",")

Dato    = arrM(0)
Bilag    = arrM(1)
Tekst    = arrM(2)
Belob    = arrM(3)
Moms    = arrM(4)
Debet    = arrM(5)
Kredit    = arrM(6)
Saldo    = arrM(7)
Nr    = arrM(8)
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:28 #9
Arrrh kom nu....
Avatar billede eagleeye Praktikant
14. juli 2003 - 12:30 #10
Brug regular expression til at søge gennem strengen og dele den op.
Finder lige et eks.

Det forudsætter så at formatet holder sig ens ned gennemfilen er det kun tal??
Avatar billede eagleeye Praktikant
14. juli 2003 - 12:31 #11
Er den linje du har vist sådan som en typsik linje vil se ud?
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:33 #12
Ja faktisk.

Dog står der enten noget i feltet debet eller kredit.

Altså enten har debet eller kreidt en værdi på ingen ting, eller også har de xx,xx - Altså forskelligt at linje til linje hvilken af dem som er udfyldt. Enten er debet eller kredit udfyldt, der mit problem ligesom også opstår.
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:34 #13
Håber det hjalp, ellers spørg!
Avatar billede eagleeye Praktikant
14. juli 2003 - 12:39 #14
Er der " omkring alle tallene det er der ikke omkring det / de to sidste
er det 48,17 eller er det 48 og 17 ?

07-07-03,,"F5 PayCard","250,00","0,00","250,00",,"1.937,50",48,17
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:42 #15
Der er " omkring
> tekst
> belob
> moms
> debet
> kredit
> saldo

Altså det er 48 og 17 og IKKE 48,17
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:43 #16
Dvs. der er jo ikke altid " omkring debet og kredit da det afhænger om den inderholder en værdi. Hvis den ikke har nogen værdi er der jo som du kan se ingen " omkring kredit i dette tilfælde. Og kunne også være omvendt med debet var tom og kredit havde en værdi med " omkring.
Avatar billede roenving Novice
14. juli 2003 - 12:50 #17
Kan du ikke løbe dem igennem efter splitten, teste om de starter med " og så samle den med den næste hvis den gør ?-)
Avatar billede pezzo Nybegynder
14. juli 2003 - 12:50 #18
roenving> Hvordan skulle jeg gøre det måske??
Avatar billede pezzo Nybegynder
14. juli 2003 - 13:01 #19
Sådan: http://www.pezzo.net/split.asp

arrM     = split(lineWrite,",")

Dato    = arrM(0)
Bilag    = arrM(1)
Tekst    = arrM(2)
Belob    = arrM(3) & "," & arrM(4)
Moms    = arrM(5) & "," & arrM(6)

Debet    = arrM(7)
if left(Debet,1) = """" then
Debet    = Debet & "," & arrM(8)
Kredit    = arrM(9)
Saldo    = arrM(10) & "," & arrM(11)
Nr    = arrM(12)
Ekstra    = arrM(13)
else

Kredit    = arrM(8) & "," & arrM(9)
Saldo    = arrM(10) & "," & arrM(11)
Nr    = arrM(12)
Ekstra    = arrM(13)

end if
Avatar billede roenving Novice
14. juli 2003 - 13:04 #20
Jeg regner med at du bruger VB/VBscript og der er jeg ikke lige eksperten, men noget à la:

dim a(10)
l = 0
for i=1 to 10
a(i)=arrM(l)
if left(a(i),1)=""" then l=l+1;a(i)=a(i)+arrM(l)
l=l+1
next
Avatar billede pezzo Nybegynder
14. juli 2003 - 13:06 #21
Okai, det forstod jeg ikke meget af, men har jo selv løst det nu!

Ellers tak :)
Avatar billede roenving Novice
14. juli 2003 - 13:10 #22
Ja, din virker vel også, så der er jo ikke nogen grund til at gøre mere ved det ...

Mit forslag var også kun for at vise en mere generel metode, så du kunne være uafhængig af hvor mange der ville have "" i !-)
Avatar billede pezzo Nybegynder
14. juli 2003 - 13:12 #23
Jep fik ideen til at lave det fra dig, det med at tjekke om den indeholdte " tegnet.

Smid et svar så ka nvi jo dele 50/50 ;)
Avatar billede roenving Novice
14. juli 2003 - 13:18 #24
-- nej behold du bare dine points, dem kan du tidsnok få brug for ,-)
Avatar billede pezzo Nybegynder
14. juli 2003 - 13:19 #25
ok ;)
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