Jag har en "stående" label med siffror ovanför varandra. Dessa siffror har jag sparat i en textfil som får en rad med siffror och med en svart fyrkat mellan varje siffra. Den motsvarar vbCrLf. Hur kan man läsa tillbaka den raden till en label så den får siffrorna under varandra? Näää, min förstår inte det. Det är som att allt efter första vbCrLf försvinner. Det är Line Input jag använder. när du kör line input så kommer inte vvbcrlf med., det får du stoppa in själv Det blir samma sak om jag kör "vanlig" Input. Om det som finns efter första vbCrLf inte kommer med hur skall man då kunna stoppa in det i labeln? Var tvungen att testa. Enl denna princip funkar det. WordWrap = True Ni har missförstått problemet. vbCrLf FINNS I FLIEN men det som står efter fommer inte med. Så här är det. Jag har en label på höjden När du skriver till filen med Print skall du inte addera vbCrLf,den byter själv rad vid varje Print kommando. Jag lägger INTE till vbCrLf när jag skriver till filen. Det finns redan i labeln eftersom siffrorna står ovanför varandra i den. De har kommit in i labeln med principen mmm ! anledning till att den inte skriver mer än 1,är förmodligen Det funkar så till vida aatt ett blir en label som får siffror under varandra men fel siffror och fel label. Jag har nog rört till det för mig. Så här ser en del av koden ut Börja med att testa denna princip.Du SKALL inte ha vbCrLf när du använder Print JA! nu har vbCrLf försvunnit som svarta fyrkanter i filen. Ett annat problem uppstod istället genom att siffrorna nu står i kolumn i filen istället för på rad. Antalet siffor kan variera från 1 till 15. Då skulle man på något listigt sätt räkna antalet siffror i labeln (kanske genom att på något sätt känna av antalet vbCLf i labeln?) och också spara antalet till filen, så man sedan i en slinga går igenom rätt antal Input när man läser tillbaka från filen. Ett sätt att få reda på hur många vbCrLf som finns i Label1.Caption är Tänk på ! att varje Label:s/objekt:s Tag property är ett "kanonplace" att lagra vital data i.Läsa vbCrLf från fil
Sv: Läsa vbCrLf från fil
Sv: Läsa vbCrLf från fil
Sv: Läsa vbCrLf från fil
Sv: Läsa vbCrLf från fil
<code>
Option Explicit
Private Sub Command1_Click()
Dim FNum As Long, tmpStr As String, i As Long
FNum = FreeFile
Open "C:\Windows\Win.ini" For Input As #FNum
For i = 1 To 10
Line Input #FNum, tmpStr
' WordWrap = True
Label1.Caption = Label1.Caption & tmpStr & vbCrLf
Next 'i
Close #FNum
End Sub
</code>Sv: Läsa vbCrLf från fil
1
2
3
Jag har sparat siffrona så det står i en fil så här ( med Print frifil, Label1.Caption)
1vbCrLf2vbCrLf3
(vbLrCf är små svarta fyrkanter i filen)
När jag skall läsa tillbaka till en stående label med Input Line kommer bara 1, inget mer
Kanske man skall skriva till filen på något annat sätt istället?Sv: Läsa vbCrLf från fil
Kör denna test och läs tillbaka till Label1 en den princip jag vissat ovan.
<code>
Option Explicit
Private Sub Command1_Click()
Dim FNum As Long, i As Long
FNum = FreeFile
Open "C:\Test.txt" For Output As #FNum
For i = 300 To 310
Print #FNum, CStr(i)
Next 'i
Close #FNum
End Sub
</code>
Ändra koden och läs tillbaka till Label1
<code>
Option Explicit
Private Sub Command1_Click()
Dim FNum As Long, tmpStr As String, i As Long
FNum = FreeFile
Open "C:\Test.txt" For Input As #FNum
For i = 1 To 10
Line Input #FNum, tmpStr
' WordWrap = True
Label1.Caption = Label1.Caption & tmpStr & vbCrLf
Next 'i
Close #FNum
Kill "C:\Test.txt"
</code>Sv: Läsa vbCrLf från fil
Label1.Caption=Label1.Caption + 1 & vbCrLf
Label1.Caption=Label1.Caption + 2 & vbCrLf
Label1.Caption=Label1.Caption + 3 & vbCrLf
för att de skall komma under varandra. Det går till och med utan att sätta Wordwrap=True.
Skriver man sedan till en fil med Print frifil, Label1.Caption
kommer allt på en gång till filen på EN rad, inklusive vbCrLf. Det går som inte attt dela upp så att man skriver 1 på en rad 2 på nästa osv i filen. Därför läses vbCrLf in när man läser från filen vilket inte funkar att få tillbaka ien label.Sv: Läsa vbCrLf från fil
att det finns en Null Char efter 1 Dvs ""
Om du kör mitt exempel ovan .Vad händer då ? , funkar det ?Sv: Läsa vbCrLf från fil
Skriv till fil
For Index = 1 To Antalkolumner
Text = Text & Label4(Index).BackColor & vbCrLf
Text = Text & Label4(Index).Caption & vbCrLf
Next Index
Print #1, Text
Läs från fil
For I = 1 To Antalkolumner
Input #1, bgfärg
Input #1, kryss
If bgfärg = 16777215 Then
Label2(I).BackColor = vbWhite
End If
If bgfärg = 65535 Then
Label2(I).BackColor = vbYellow
End If
If bgfärg = 0 Then
Label2(I).BackColor = vbBlack
End If
Label2(I).Caption = kryss
Next I
Hur skall jag lägga in din kod i detta?Sv: Läsa vbCrLf från fil
<code>
For Index = 1 To Antalkolumner
Text = Label4(Index).BackColor
Print #1, Text
Text = Label4(Index).Caption
Print #1, Text
Next 'Index
'Läs från fil
For I = 1 To Antalkolumner
Line Input #1, bgfärg
Line Input #1, kryss
</code>Sv: Läsa vbCrLf från fil
Sv: Läsa vbCrLf från fil
<code>
Dim dummyArray() As String,cnt As Long
dummyArray = Split(Label1.Caption, vbCrLf)
cnt = UBound(dummyArray)
MsgBox cnt
'eventuellt får du minska cnt med 1
</code>Sv: Läsa vbCrLf från fil