Tjenixen gott folk! Kanon, skulle kunna funka bra. *kram* Jag chansar på att det är ordernummret som är störe än en integer 32768. Stränghantering - enkel fråga
Nu är det onsdageftermiddag och jag har sirap i skallen och kommer absolut inte på lösningen...
Jag vill läsa ut ett visst antal tecken (jag vet antal start- och slutposition) från en sträng, men kan fan inte hitta lösningen - fast jag vet att jag gjort det tidigare ,o)
Med Left så kommer jag ingenstans (den läser ju bara ett antal tecken - men man kan väl såvitt jag hittar inte ange startposition?).
Har även för mig att jag i MSDN har hittat en lista på stränghanteringsfunktioner - men hittar inte den igen - har jag fel för mig så att jag har sett den på ngn annan VB-sida? Isf - ngn som vet vart? ,o)
Usch... nej, nog dags att ta en tidig eftermiddag tror jag...Sv: Stränghantering - enkel fråga
Ett annat problem dök dock upp, strängen jag arbetar med är stor... vi snackar 10.000-12.000 tecken.
Jag får en overflow när jag hämtar ut 6 tecken från den och lägger i en annan variabel... beror det på att mid inte kan arbete med så stora strängar - eller ligger felet ngn annanstans?
Så här ser koden ut:
' öppna textfilen
Open strFilePath For Binary As #intFileNum
' ta reda på hur lång filen är
strSize = LOF(intFileNum)
' skapa en sträng som är lika lång som filen
strBuffer = Space$(strSize)
' hämta all text från filen och släng in det i strängen
Get #intFileNum, , strBuffer
strSearchFor = "[OrderNr"
intStartReadPlace = InStr(1, strBuffer, strSearchFor, 1)
intEndReadPlace = InStr(intStartReadPlace, strBuffer, "]", 1)
intStartReadPlace = intStartReadPlace + 8 'för att hamna efter ....Nr"
intLager = 0
intReadLength = intEndReadPlace - intStartReadPlace
intLager = cint(Mid(strBuffer, intStartReadPlace, intReadLength))
Det jag alltså skall göra är att i en textmassa leta upp ett visst ordernr, och efter det ordernr är ett tal på upp till 7 tecken som läses in (alltså fram till "]"). Är det ngt väsentligt jag missar? Vad kan overflown (som kommer på sista radern: intLager = cint.... osv bero på?Sv: Stränghantering - enkel fråga
Tackar!
Förstår dock fortfarande inte riktigt vad skillnaden var på din lösning och den jag gjorde mha den förste som svarade (missat namn)...
Anyway - nu funkar det!Sv: Stränghantering - enkel fråga
Du kan ju testa:
intLager = CLng(Mid(strBuffer, intStartReadPlace, intReadLength))
Bäst vor om du kontrolera värdet:
Debug.Print Mid(strBuffer, intStartReadPlace, intReadLength)