webForumDet fria alternativet

Ladda in Sekventiella filer med radbyten

.NET

8 svar · 351 visningar · startad av der Kaiser

Medlem sedan okt. 200217 inlägg
Frågan#1

Jo jag försökte att ladda in en fil med lite radbyten... men si det funkade inte... :( Koden jag använde mig av var den här:

Dim iFilNr As Integer
Dim sTest As String
iFilNr = FreeFile
Open "[filnamn]" For Input As iFilNr
Do Until EOF(iFilNr)
Input #iFilNr, sTest
Text5.Text = Text5.Text + sTest
Loop
Close iFilNr

Men nu laddas inte radbyten in. :( Vet någon hur jag ska göra för att få även det att funka?

//pontus

Medlem sedan jan. 20032 356 inlägg
#2

Kan man inte byta ut aktuella "\n" mot "chr$(13)"?
Kontrollera även att multiline propertie för textboxen är satt till true.

Medlem sedan okt. 200217 inlägg
#3

ja textboxen har multiline = true
men jag vet inte hur man skulle kunna få in chr$(13) i det hela... själva filen ser ut som typ:

Hej!
detta är en flerradig fil

fast mitt returnerade värde blir Hej!detta är en flerradig fil

Medlem sedan juni 20022 599 inlägg
#4
Text5.Text = Text5.Text + vbCrLf + sTest

?

Medlem sedan okt. 200217 inlägg
#5

hmm... niko, du är på rätt väg :/ den fick den raderna att fungera, fast den laddar inte kommatecken... :/ jag vet att det är något krux med input # men jag vet inte vad man skulle kunna ersätta det med...

det är vad som står i själva inskrivnings-textboxen:

"730 610 17001810730 1200610 8,25hmm
detta är en minneslapp...
en till... " (utan "" (strunt i att det är krypska siffror - det är kordinater))

i filen står det:

"730 610 17001810730 1200610 8,25hmm
detta är en minneslapp...
en till... " (dvs lika dant)

men sedan när jag laddar in filen med koden ovan (jag la till den där grejjen niko sa och då fick jag som sagt raderna att fungera), i en annan textbox får jag ett det här resultatet:

"
730 610 17001810730 1200610 8
25hmm
detta är en minneslapp..." (dvs en extra rad i början (kanske får placera vbcrlf efter sTest - fast då får man en extra rad i slutet tror jag) och att kommat försvinner och blir ett radbyte, och att alla mellanslag i slutet försvinner... :/

Finns det någon annan kod som laddar in EXAKT vad man skriver i textboxen? :/

Medlem sedan juni 20022 599 inlägg
#6

Det finns inget "krux" med input. Den gör exakt vad den ska dvs den läser en rad fram till radslut. Radslutet inkluderas alltså inte. Vill man ha detta får man lägga till det själv enligt ovan.

Att du en får en extra rad i början (eller slutet) med min kod är riktigt. Vill du inte ha det så kan du skriva tex:

if Text5.Text="" then
	Text5.Text = sTest 
else
	Text5.Text = Text5.Text + vbCrLf + sTest 
end if

Kommatecken och blanktecken som försvinner har nog inget med input att göra? Det måste vara nåt annat fel i din kod.

Medlem sedan okt. 200217 inlägg
#7

ja det är klart det är fel på min kod - annars så skulle jag ju inte fråga vad som är fel på den :DDD
finns det någon alternativ kod då som tar in precis allt? :/

"Till skillnad från Input # så läser Input$ in alla tecken, dvs även de eventuella styrtecken som t ex radbyte eller tab-tecken."

(och jag har ju använt mig av input#)
Finns det något sätt att använda input$ på? jag har försökt med jag får det inte att funka... :/ Jag är öppen för helt nya förslag - jag vill bara få det att funka ;)

Medlem sedan juni 20022 599 inlägg
#8

Oj, fel av mig sorry .. :OO

Jag läste din fråga slarvigt. Problemet med komma-/blanktecknen orsakas faktiskt av Input.

Använd Line Input istället.

Medlem sedan okt. 200217 inlägg
#9

pjuuu, eftersom jag inte är någon hejjare på vb, och tror att jag är väldigt säker på att jag har rätt, och får mothugg är det inte så lätt att försöka förklara sig ;)

tack så mycket :) jag lyckades få det att fungera efter mycket om och men :)

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)