Nån som vet hur (eller om det går) Hej Om dina rader har fast bred så kan du göra detta. MEn annars måste du läsa filen och söka efter antalet radbrytningar fram till den raden du skall skriva på. Sedan måste du flytta upp/ned informatione som kommer efter om den nya texten är större/mindre. Hej. det som problemet är, är ju att jag ska göra ett programOpen/print/input
man kan läsa eller starta från en viss rad i en fil
och skriva till en viss rad, utan att behöve loopa igenom hela filen?
tex jag vill skriva till rad 4576, då vill jag inte sitta och "input line":a
alla innan osv..Sv: Open/print/input
Du kan ha en Dummy TextBox i ditt prog Visible = False.
I den laddar du textfilen vid lämplig tidpunkt,kanske redan vid start.
Sedan:
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As Any) As Long
'Obs lParam skall vara ByVal
' Edit Control Messages
Const WM_USER = 1024
Const EM_GETLINECOUNT = &HBA
Const EM_GETLINE = &HC4
Dim Cnt As Long, buffer As String
Dim RadNr As Long 'Obs översta raden har nr 0
RadNr = 4576 'Vilken rad skall fångas
Cnt = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
Form1.Caption = "Text1 innehåller " & Cnt & " rader"
buffer = String(100, 32) 'lägger upp en buffer på 100 space
Cnt = SendMessage(Text1.hwnd, EM_GETLINE, RadNr, buffer)
On Error Resume Next
buffer = Left$(buffer, Cnt - 2) '- 2 tar bort vbCrLf
'buffer innehåller din begärda rad
/SvenSv: Open/print/input
Sv: Open/print/input
En grej som jag använde mig av var att ladda in hela filen i en variabel.
Köra split
uppdatera arrayen.
skriva tillbaka hela filen.
Dim strFile As String
Dim varArr As Variant
strFile = objS.ReadAll
varArr = Split(strFile, vbCrLf)
varArr(23) = "Denna rad uppdateras"
Detta ger kanske inte den prestandan du önskar men fungerar...
//freddaSv: Open/print/input
som går igenom en fil, som kan vara 1byte stor, eller
en fil som är 1 gig stor, är filen bara några hundra kb, så gör det inget att läsa in allt
pch alternera det som den ska där den ska, men
om filen är 1 gig så är det omöjligt även för den bästa datorn att
hantera DEN mängden i minnet
så jag behöver kunna skriva vid en specifik tecken-placering
eller rad, och det är där mitt problem kommer :\