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


Får inte till loopen mellan vb och exel

Postades av 2009-07-21 23:06:59 - Joacim Kindvall, i forum visual basic - allmänt, Tråden har 9 Kommentarer och lästs av 1690 personer

Hejsan på er
Jag försöker att få till en loop som konverterar en kommasepparerad textfil till exel utan framgång.
så här ser koden ut som generarar exelkoden, funkar på en rad men när jag försöker mig på att loopa genom textfilen så händer inget alls. tänkte att jag sedan jag har listan i en listview så borde det inte vara så knivigt att få till loopen så att exelarket fylls i, men jag ger snart upp. hoppas ni kunniga har en lösning här på sidan.
<code>Dim colu As Byte
Dim rw As Byte, a As Byte
Dim ef1 As New ExcelFile

With ef1
a = a + 1
.EWriteString a, 1, strnamn
.EWriteString a, 2, strbeskrivning
.EWriteString a, 3, strpris
.EWriteString a, 4, strantal
.EWriteString a, 5, strean
.CloseFile
End With
</code>
när jag öppnar textfilen så ser det ut som följer
<code>cd.CancelError = True 'öppnar för input
cd.DialogTitle = "Öppna databas"
cd.Filter = "Gilltiga format *.ini |*.ini|(*.*)|*.*|"
cd.ShowOpen
F = FreeFile
Open (cd.FileName) For Input As F
Do While Not EOF(F)

Input #F, strNamn, strPris, strantal, strbeskrivning, strean
Set itmx = ListView1.ListItems.add()
itmx.Text = strNamn
itmx.SubItems(1) = strPris
itmx.SubItems(2) = strantal
itmx.SubItems(3) = strbeskrivning
itmx.SubItems(4) = strean
Loop
Close F</code>


Svara

Sv: Får inte till loopen mellan vb och exel

Postades av 2009-07-22 09:23:11 - Sven Åke Persson

Din ListView är väl onödig ! ? eller.

Återkommer med ett förslag utan ListView


Svara

Sv:Får inte till loopen mellan vb och exel

Postades av 2009-07-22 09:48:48 - Sven Åke Persson

Så här ungefär. Kan inte som du förstår provköra.
<code>
Dim colu As Byte
Dim rw As Byte, a As Byte
Dim ef1 As New ExcelFile
Dim convStr() As String, lineStr As String
cd.CancelError = True 'öppnar för input
cd.DialogTitle = "Öppna databas"
cd.Filter = "Gilltiga format *.ini |*.ini|(*.*)|*.*|"
cd.ShowOpen
F = FreeFile
a = 1
Open (cd.FileName) For Input As #F
Do Until EOF(F)
Line Input #F, lineStr
convStr = Split(lineStr, ",")
With ef1
.EWriteString a, 1, convStr(0)
.EWriteString a, 2, convStr(1)
.EWriteString a, 3, convStr(2)
.EWriteString a, 4, convStr(3)
.EWriteString a, 5, convStr(4)
End With
a = a + 1
Loop
' Felet innan skulle kunna vara att du gör ef1.CloseFile efter en inmatning
ef1.CloseFile
Close #F
</code>


Svara

Sv: Får inte till loopen mellan vb och exel

Postades av 2009-07-22 15:08:21 - Joacim Kindvall

Tack Sven, du är en klippa på VB, Skall ta och prova koden så hör jag av mig sedan. Men den ser ju onekligen bättre ut än vad jag åstadkomm.

//Jocke


Svara

Sv:Får inte till loopen mellan vb och exel

Postades av 2009-07-23 20:51:00 - Joacim Kindvall

Jo då den funkade. Fick bara sätta dit .OpenFile "exelark.xls" så funkade det. Men jag har ett annat problem med den. Jag får overflow på a=a+1. Men det är bara när raderna är kortare än 68 tecken.
Jag har lagt in en radbrytning efter 68 tecken så jag tror det är vbcrlf som spökar. Har lagt in en replace på den utan framgång, eller kan man göra någon annan finurlig grej som jag inte vet om?.

//Jocke


Svara

Sv: Får inte till loopen mellan vb och exel

Postades av 2009-07-24 03:07:10 - Sven Åke Persson

Kan du visa en rad ur din txtfil där det strular. Konstigt du borde kunna få a att bli 255
Finns det en massa tom rader mm.

Dim colu As Byte
Dim rw As Byte, a As Byte
Är dessa variabler deklarerade i en SubRutin eller är dom Globala ?

När man hanterar heltal i VB6 så är det ingen mening med att använda Byte eller Integer
Använd Long som är ett 32 bitars tal.Processorn skyfflar 32 bitar i taget.Om du då vill ha Byte
måste programmet vaska fram Byten ur dom 32 bitarna.Helt onödiga operationer.
Ändra till
<code>
Dim colu As Long
Dim rw As Long, a As Long

'Och lägg till efter Loop Om ! a är Globalt ! ummm som den inte bör vara
a = 1
</code>


Svara

Sv:Får inte till loopen mellan vb och exel

Postades av 2009-07-25 09:41:40 - Joacim Kindvall

Dim a As Byte var jag tvungen att ha de andra gick att ändra till Long. Dom är deklarerade i subrutinen. Men jag hittade ett annat problem. I texten som jag vill ha till exel så förekommer det kommatecken vilket gör att raden bryts vid dom så texten hamnar fel i exelarket. Det kan nog vara det som gör att jag får overflow på a=a+1. Alla meningar, ord och tal som ligger i textfilen är omringade med "" så jag satte en replace på det, och nu funkar det. Fast nu dök det upp andra bekymmer. Om man har tryckt på enterknappen för att bryta en rad när man skriver så ligger det en massa konstiga tecken av det i listviewen och nu verkar det som om det också ställer till problem. Då heter felkoden Subscript out of range. Jag tror jag snart skippar det här med exel. bara bekymmer.


Svara

Sv: Får inte till loopen mellan vb och exel

Postades av 2009-07-25 11:03:23 - Sven Åke Persson

<b>Subscript out of range</b>

Jaaa då har arrayen convStr() överskridits dvs det saknas deklarerade fack att lägga ordet i.

Ju mer man rotar i en skit ju mer luktar det ;-)


Svara

Sv:Får inte till loopen mellan vb och exel

Postades av 2009-07-26 09:24:32 - Sven Åke Persson

Nu kan du väl berätta vad det är du vill göra.

Börjar misstänka att du letar på Byte nivå. Dvs kollar olika tecken 0-255

Nyfiken Sven


Svara

Sv: Får inte till loopen mellan vb och exel

Postades av 2009-07-26 10:27:59 - Joacim Kindvall

Ja faktiskt, hur visste du det?:-) När jag kommit så här långt så vore det ju lite tragiskt att bara lägga av. Kollade lite hemsidor om ASCII-koder. Det finns ju både enter och linefeed, det är ju det som jag tryckt för att byta raden i texten. Hittar inget tecken som motsvarar det som visas i listviewen där jag har radbrytning, ser ut som 2 st | , Fast lite tjockare och inte så höga. Det finns ett tecken (254) fast det är för dos, det liknar det som jag har. Annars får man väl lägga det på is sålänge :-(

/jocke


Svara

Nyligen

  • 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
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 725
27 958
271 751
300
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