Mitt program öppnar en fil och läser in rad för rad och lägger dessa rader (minus de 2 sista tecknen i varje rad) i en combobox. Har gjort ett litet exempel som kanske kan hjälpa dig. ÄR det inte bättre att använda RTrim()? Kan så vara, med RTrim så tillåter man ju att det är mellanslag i början av strängen, ok det kan ju vara ok för användaren. Hej, Har provat nu med Trim-funktionen, och det fungerade... Det trodde jag också , men 0... icke!Ignorera tomma rader i textfil
Nu försöker jag hitta en funktion som tar bort blankrader i filen om de har infogats av misstag.
Har försökt använta mig av IsNull och IsEmpty men är inte säker på att detta är riktigt! Även Len-funktionen har jag försökt använt! Hur kan jag ändra på koden så det fungerar?
Open App.Path & "\fil-1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, temp
Ant = Len(temp)
If Ant > 4 Or Not IsNull(temp) Or Not IsEmpty(temp) Then
LWord = Left(temp, (Ant - 2)) ' LWord är raden minus 2 tecken
Combo1.AddItem LWord ' Lägg till i comboboxen
End If
Loop
Close #1
----------------------------------------------------------------------------------------------
Error 5
Possible causes:
A statement or function has an improper or out-of-range argument.
For example:
A negative or unreasonably large subscript
A negative number raised to a non-integer power
A negative record number in a Get or Put statement
An I/O function or statement (Loc or LOF, for example) performed on a device that does not support it
Strings are concatenated to create a string greater than 65,535 characters in length
Invalid method call, such as an inappropriate method argumentSv: Ignorera tomma rader i textfil
När du ska öppna en fil, använd då funktionen FreeFile för att få ett tillgängligt filnummer istället för att hårdkoda det med "#1". Filnummer 1 kan ju redan vara använt för öppnandet av en annan fil.
<code>
Option Explicit
Sub main()
Dim FileNo As Long
Dim StrLen As Integer
Dim InString As String
FileNo = FreeFile
Open "C:\Temp\MyFile.txt" For Input As #FileNo
Do While Not EOF(FileNo)
Line Input #FileNo, InString
'Ta bort alla mellanslag i början och slutet av strängen
'Detta gör att även en rad som bara består av mellanslag
'inte komer att läsas in
InString = Trim(InString)
'Hämta stränglängd minus 2 tecken
StrLen = Len(InString) - 2
If StrLen > 0 Then
'Det är inte en tomrad
'Lägg till till Combo
Debug.Print Left(InString, StrLen), InString 'Här kör vi debug i stället för Combo.AddItem
Else
'Det är en tomrad eller en rad som bara består av mellanslag
Debug.Print "Tomrad", InString
End If
Loop
Close #FileNo
End Sub
</code>
//
JanneSv: Ignorera tomma rader i textfil
<code>
InString = RTrim(InString)
</code>Sv: Ignorera tomma rader i textfil
//
JanneSv: Ignorera tomma rader i textfil
Borde inte det enklaste vara att kontrollera
if Len(trim(sträng)) = 0 then
då manipulerar man inte den befintliga textsträngen men kontrollerar om det finns
några tecken på raden...
/EmmaSv: Ignorera tomma rader i textfil
men jag får Error 0!
Vad är detta?Sv: Ignorera tomma rader i textfil
Rättelse: vet inte hur error 0 kom upp, men jag tog bort errorhandler så var det ok, det får duga så!