Write line probleem! Wie o wie weet dit?

Status
Niet open voor verdere reacties.

Mar k

Gebruiker
Lid geworden
26 okt 2009
Berichten
60
Beste,

Ik heb een probleem met een code in Visual Basic.
Ik heb een programma die vanaf een ftp server een text file download. Deze opslaat in een map, en dan moet er dus op line 7 iets worden vervangen wat niet helemaal lukt.
Vanaf de ftp server heeft het bestand meer dan 10 lines. op line 7 moet nu dus een andere tekst komen en moet vervolgens het bestand weer opgeslagen worden en doorgestuurd worden naar de ftp server.
Wat ik ook probeer, continu zet hij de tekst op lijn 1 en verschuift hij elke tekst een naar beneden (dus line 1 wordt line 2, line 2 wordt 3, etc)
Deze lines zijn heel belangrijk aangezien de server deze lines gebruikt als referentie voor bepaalde data.

Hoe kan ik simpel uitgelegd:
Een tekstbestand openen en alleen line 7 veranderen zonder alle andere lijnen te veranderen?

Ik hoop dat ik dit kan verhelpen!
mvg,
mark
 
Daar zijn meerdere methoden voor maar wat je ervoor in je eigen code moet aanpassen is zo uiteraard totaal onmogelijk te zeggen.
 
ik zou met een streamwriter de hele file inlezen en in een 2e streamwriter zetten.
Je kunt de linecounter checken of hij op 7 staat en dan een aanpassing doen van die lijn (string vervangen)
2e streamwriter wegzettten en uploaden en klaar.

M.
 
Smarthinker: ik ben niet echt goed met de codes uit m'n hoofd. Zou je me de code kunnen geven hiervoor?
 
http://msdn.microsoft.com/en-us/library/yw67h925.aspx
http://msdn.microsoft.com/en-us/library/hxwfzt61.aspx

daartussen moet je dan de stream regel voor regel overlezen naar de 2e.
volgende voorbeeld is in C# maar de clue is duidelijk.
http://stackoverflow.com/questions/14533536/streamwriter-replace-line-with-a-new-text

maak een do while loop op de reader tot End Stream en add to writeStream.
laat een teller meelopen (of een if op een bepaalde tekst) en als het regel 7 is dan schrijf je een andere regel naar de writer.


2e lijn verwerker voorbeeld (helaas ook in c#)
http://stackoverflow.com/questions/1971008/edit-a-specific-line-of-a-text-file-in-c-sharp

Als je geen C# kan lezen dan is er iemand hier (evt ik) die de code wel in VB hier neer kan kwakken. (lijkt erg op elkaar)
 
Ik moet je zeggen dat ik er slecht uitkom haha, ik ben dan ook nog niet zeer gevorderd met Visual Basic maar leer doormiddel van youtube en dit soort voorbeelden.
Dit is wat het script doet en wat er dus mist:

Dim buffer(1023) As Byte ' Allocate a read buffer of 1kB size
Dim bytesIn As Integer ' Number of bytes read to buffer
Dim totalBytesIn As Integer ' Total number of bytes received (= filesize)
Dim output As IO.Stream ' A file to save response

Dim FTPRequest As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("********" & TextBox3.Text & ".txt"), System.Net.FtpWebRequest)
' No credentials needed in this case. Usually you need to provide them. Catch the appropriate error if/when credentials are wrong!
FTPRequest.Credentials = New System.Net.NetworkCredential("********", "********")
' Send a request to download a file
FTPRequest.Method = System.Net.WebRequestMethods.Ftp.DownloadFile
' FTP server return a _response_ to your request
Dim stream As System.IO.Stream = FTPRequest.GetResponse.GetResponseStream
' If you need the length of the file, send a request Ftp.GetFileSize and read the response
'Dim length As Integer = CInt(FTPRequest.GetResponse.ContentLength)
' Write the content to the output file
output = System.IO.File.Create(My.Computer.FileSystem.CurrentDirectory & "/data/userdata.txt")
bytesIn = 1 ' Set initial value to 1 to get into loop. We get out of the loop when bytesIn is zero
Do Until bytesIn < 1
bytesIn = stream.Read(buffer, 0, 1024) ' Read max 1024 bytes to buffer and get the actual number of bytes received
If bytesIn > 0 Then
' Dump the buffer to a file
output.Write(buffer, 0, bytesIn)
' Calc total filesize
totalBytesIn += bytesIn
' Show user the filesize
Label1.Text = totalBytesIn.ToString + " Bytes Downloaded"
Application.DoEvents()
End If
Loop
output.Close()
stream.Close()

' Wachtwoord toevoegen aan het userdata.txt bestand in line 7

!! Hier moet dus de code komen voor het aanpassen van line 7.

Als je me de code wilt 'voorschotelen' zou dat echt top zijn. Dan kan ik verder met mijn project!
Ps. deze code heb ik ook overgenomen van internet :-) heb het niet zelf geschreven.
 
Laatst bewerkt:
http://msdn.microsoft.com/en-us/library/yw67h925.aspx
http://msdn.microsoft.com/en-us/library/hxwfzt61.aspx

daartussen moet je dan de stream regel voor regel overlezen naar de 2e.
volgende voorbeeld is in C# maar de clue is duidelijk.
http://stackoverflow.com/questions/14533536/streamwriter-replace-line-with-a-new-text

maak een do while loop op de reader tot End Stream en add to writeStream.
laat een teller meelopen (of een if op een bepaalde tekst) en als het regel 7 is dan schrijf je een andere regel naar de writer.


2e lijn verwerker voorbeeld (helaas ook in c#)
http://stackoverflow.com/questions/1971008/edit-a-specific-line-of-a-text-file-in-c-sharp

Als je geen C# kan lezen dan is er iemand hier (evt ik) die de code wel in VB hier neer kan kwakken. (lijkt erg op elkaar)

Kon je me nog de code geven hiervoor? Alvast bedankt :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan