/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Første linie i en tekstfil
Fra : Franz Jäger


Dato : 11-07-01 11:29

Nogen der kan hjælpe mig med hvordan jeg nemmest kan ændre den første linie
i en tekst-fil?? (jeg er helt nybegynder!!)



 
 
Niels (12-07-2001)
Kommentar
Fra : Niels


Dato : 12-07-01 18:50

Her er noget kode der kan gøre det.

Public Sub ChangeFirstLineInFile(sFileName as string, sTekst as string)

Dim sLine as String

Name sFileName As sFileName & ".old" ' Vi ændre lige navnet på filen.

Open sFileName & ".old" For Input As 1 ' Læser fra den gamle
Open sFileName For Output As 2 ' Opretter en ny fil

Line Input #1, sLine ' Her læses den linie der skal ændres
Print #2, sTekst ' Her skrives den nye tekst

While Not Eof(1) ' Løb resten af filen igennem
Line Input #1, sLine ' læs linierne
Print #2, sLine ' og skriv dem i den nye fil'
Wend

Close #2
Close #1 ' Luk filerne

Kill sFileName & ".old" ' Slet den gamle fil.

End Sub

Men bemærk der er ikke taget forbehold for at filen kan være tom,
ej heller at filen kan være skrive beskyttet. - Når ja, jeg har ikke test
koden.

Mvh
- Niels G.

"Franz Jäger" <freakazoid@superheros.as> wrote in message
news:9ih9ot$1bpb$1@news.cybercity.dk...
> Nogen der kan hjælpe mig med hvordan jeg nemmest kan ændre den første
linie
> i en tekst-fil?? (jeg er helt nybegynder!!)
>
>



Bjarke Walling Peter~ (12-07-2001)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 12-07-01 21:13

Man kan også gøre sådan her... den anvender ingen temp. fil.
Det skulle gerne virke ved alle filer - dog ikke binære

Private Sub ChangeFirstLine(Filename As String, NewFirstLine As String)
Dim File As String
Dim Pos As Long
' Åben filen til læsning:
Open Filename For Input As #1
' Indlæs hele filen i variablen File:
File = Input(LOF(1), #1)
Close #1
' Find positionen for det første linieskift:
Pos = InStr(File, vbCrLf)
' Find ud af om der overhovedet er linieskift:
If Pos = 0 Then
' Der er ikke linieskift.
' Det nye filinhold bliver NewFirstLine:
File = NewFirstLine
Else
' Der er linieskift.
' Den første linie bliver skiftet ud
' med NewFirstLine:
File = NewFirstLine & Mid(File, Pos)
End If
' Overskriv den gamle fil med det nye indhold:
Open Filename For Output As #1
' Semikolon sørger for at der ikke kommer en
' ekstra linie i bunden af den nye fil:
Print #1, File;
Close #1
End Sub

- Bjarke Walling Petersen

Niels skrev:
> Her er noget kode der kan gøre det.
>
> Public Sub ChangeFirstLineInFile(sFileName as string, sTekst as string)
>
> Dim sLine as String
>
> Name sFileName As sFileName & ".old" ' Vi ændre lige navnet på filen.
>
> Open sFileName & ".old" For Input As 1 ' Læser fra den gamle
> Open sFileName For Output As 2 ' Opretter en ny fil
>
> Line Input #1, sLine ' Her læses den linie der skal ændres
> Print #2, sTekst ' Her skrives den nye tekst
>
> While Not Eof(1) ' Løb resten af filen igennem
> Line Input #1, sLine ' læs linierne
> Print #2, sLine ' og skriv dem i den nye fil'
> Wend
>
> Close #2
> Close #1 ' Luk filerne
>
> Kill sFileName & ".old" ' Slet den gamle fil.
>
> End Sub
>
> Men bemærk der er ikke taget forbehold for at filen kan være tom,
> ej heller at filen kan være skrive beskyttet. - Når ja, jeg har ikke test
> koden.
>
> Mvh
> - Niels G.
>
> "Franz Jäger" <freakazoid@superheros.as> wrote in message
> news:9ih9ot$1bpb$1@news.cybercity.dk...
> > Nogen der kan hjælpe mig med hvordan jeg nemmest kan ændre den første
> linie
> > i en tekst-fil?? (jeg er helt nybegynder!!)
> >
> >
>
>



Niels (14-07-2001)
Kommentar
Fra : Niels


Dato : 14-07-01 10:52

Det ser rigtigt godt ud. Det er nok den løsning man bør bruge.
Men bemærk den også har den forudsætning, at filerne må ikke være
kæmpe store, da hele filen læser ind i hukommelsen.

- Niels

"Bjarke Walling Petersen" <bwp@bwp.dk> wrote in message
news:9il0a2$huv$1@news.cybercity.dk...
> Man kan også gøre sådan her... den anvender ingen temp. fil.
> Det skulle gerne virke ved alle filer - dog ikke binære
>
> Private Sub ChangeFirstLine(Filename As String, NewFirstLine As String)
> Dim File As String
> Dim Pos As Long
> ' Åben filen til læsning:
> Open Filename For Input As #1
> ' Indlæs hele filen i variablen File:
> File = Input(LOF(1), #1)
> Close #1
> ' Find positionen for det første linieskift:
> Pos = InStr(File, vbCrLf)
> ' Find ud af om der overhovedet er linieskift:
> If Pos = 0 Then
> ' Der er ikke linieskift.
> ' Det nye filinhold bliver NewFirstLine:
> File = NewFirstLine
> Else
> ' Der er linieskift.
> ' Den første linie bliver skiftet ud
> ' med NewFirstLine:
> File = NewFirstLine & Mid(File, Pos)
> End If
> ' Overskriv den gamle fil med det nye indhold:
> Open Filename For Output As #1
> ' Semikolon sørger for at der ikke kommer en
> ' ekstra linie i bunden af den nye fil:
> Print #1, File;
> Close #1
> End Sub
>
> - Bjarke Walling Petersen
>
> Niels skrev:
> > Her er noget kode der kan gøre det.
> >
> > Public Sub ChangeFirstLineInFile(sFileName as string, sTekst as string)
> >
> > Dim sLine as String
> >
> > Name sFileName As sFileName & ".old" ' Vi ændre lige navnet på filen.
> >
> > Open sFileName & ".old" For Input As 1 ' Læser fra den gamle
> > Open sFileName For Output As 2 ' Opretter en ny fil
> >
> > Line Input #1, sLine ' Her læses den linie der skal ændres
> > Print #2, sTekst ' Her skrives den nye tekst
> >
> > While Not Eof(1) ' Løb resten af filen igennem
> > Line Input #1, sLine ' læs linierne
> > Print #2, sLine ' og skriv dem i den nye fil'
> > Wend
> >
> > Close #2
> > Close #1 ' Luk filerne
> >
> > Kill sFileName & ".old" ' Slet den gamle fil.
> >
> > End Sub
> >
> > Men bemærk der er ikke taget forbehold for at filen kan være tom,
> > ej heller at filen kan være skrive beskyttet. - Når ja, jeg har ikke
test
> > koden.
> >
> > Mvh
> > - Niels G.
> >
> > "Franz Jäger" <freakazoid@superheros.as> wrote in message
> > news:9ih9ot$1bpb$1@news.cybercity.dk...
> > > Nogen der kan hjælpe mig med hvordan jeg nemmest kan ændre den første
> > linie
> > > i en tekst-fil?? (jeg er helt nybegynder!!)
> > >
> > >
> >
> >
>
>



Bjarke Walling Peter~ (14-07-2001)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 14-07-01 12:52

Niels skrev:
> Det ser rigtigt godt ud. Det er nok den løsning man bør bruge.
> Men bemærk den også har den forudsætning, at filerne må ikke være
> kæmpe store, da hele filen læser ind i hukommelsen.

Ja, det er selvfølgelig rigtigt... det havde jeg ikke lige tænkt på.

- Bjarke Walling Petersen

> - Niels
>
> "Bjarke Walling Petersen" <bwp@bwp.dk> wrote in message
> news:9il0a2$huv$1@news.cybercity.dk...
> > Man kan også gøre sådan her... den anvender ingen temp. fil.
> > Det skulle gerne virke ved alle filer - dog ikke binære
> >
> > Private Sub ChangeFirstLine(Filename As String, NewFirstLine As String)
> > Dim File As String
> > Dim Pos As Long
> > ' Åben filen til læsning:
> > Open Filename For Input As #1
> > ' Indlæs hele filen i variablen File:
> > File = Input(LOF(1), #1)
> > Close #1
> > ' Find positionen for det første linieskift:
> > Pos = InStr(File, vbCrLf)
> > ' Find ud af om der overhovedet er linieskift:
> > If Pos = 0 Then
> > ' Der er ikke linieskift.
> > ' Det nye filinhold bliver NewFirstLine:
> > File = NewFirstLine
> > Else
> > ' Der er linieskift.
> > ' Den første linie bliver skiftet ud
> > ' med NewFirstLine:
> > File = NewFirstLine & Mid(File, Pos)
> > End If
> > ' Overskriv den gamle fil med det nye indhold:
> > Open Filename For Output As #1
> > ' Semikolon sørger for at der ikke kommer en
> > ' ekstra linie i bunden af den nye fil:
> > Print #1, File;
> > Close #1
> > End Sub
> >
> > - Bjarke Walling Petersen
> >
> > Niels skrev:
> > > Her er noget kode der kan gøre det.
> > >
> > > Public Sub ChangeFirstLineInFile(sFileName as string, sTekst as
string)
> > >
> > > Dim sLine as String
> > >
> > > Name sFileName As sFileName & ".old" ' Vi ændre lige navnet på
filen.
> > >
> > > Open sFileName & ".old" For Input As 1 ' Læser fra den gamle
> > > Open sFileName For Output As 2 ' Opretter en ny fil
> > >
> > > Line Input #1, sLine ' Her læses den linie der skal ændres
> > > Print #2, sTekst ' Her skrives den nye tekst
> > >
> > > While Not Eof(1) ' Løb resten af filen igennem
> > > Line Input #1, sLine ' læs linierne
> > > Print #2, sLine ' og skriv dem i den nye fil'
> > > Wend
> > >
> > > Close #2
> > > Close #1 ' Luk filerne
> > >
> > > Kill sFileName & ".old" ' Slet den gamle fil.
> > >
> > > End Sub
> > >
> > > Men bemærk der er ikke taget forbehold for at filen kan være tom,
> > > ej heller at filen kan være skrive beskyttet. - Når ja, jeg har ikke
> test
> > > koden.
> > >
> > > Mvh
> > > - Niels G.
> > >
> > > "Franz Jäger" <freakazoid@superheros.as> wrote in message
> > > news:9ih9ot$1bpb$1@news.cybercity.dk...
> > > > Nogen der kan hjælpe mig med hvordan jeg nemmest kan ændre den
første
> > > linie
> > > > i en tekst-fil?? (jeg er helt nybegynder!!)
> > > >
> > > >
> > >
> > >
> >
> >
>
>



Franz Jäger (14-07-2001)
Kommentar
Fra : Franz Jäger


Dato : 14-07-01 13:49

Mange tak, lige hvad jeg havde brug for!
Det bliver ikke et problem med størrelsen af filerne, da de kun er på
omkring 50-60 linier. Tak for hjælpen!

"Bjarke Walling Petersen" <bwp@bwp.dk> skrev i en meddelelse
news:9ipble$2ro2$1@news.cybercity.dk...
> Niels skrev:
> > Det ser rigtigt godt ud. Det er nok den løsning man bør bruge.
> > Men bemærk den også har den forudsætning, at filerne må ikke være
> > kæmpe store, da hele filen læser ind i hukommelsen.
>
> Ja, det er selvfølgelig rigtigt... det havde jeg ikke lige tænkt på.
>
> - Bjarke Walling Petersen
>
> > - Niels
> >
> > "Bjarke Walling Petersen" <bwp@bwp.dk> wrote in message
> > news:9il0a2$huv$1@news.cybercity.dk...
> > > Man kan også gøre sådan her... den anvender ingen temp. fil.
> > > Det skulle gerne virke ved alle filer - dog ikke binære
> > >
> > > Private Sub ChangeFirstLine(Filename As String, NewFirstLine As
String)
> > > Dim File As String
> > > Dim Pos As Long
> > > ' Åben filen til læsning:
> > > Open Filename For Input As #1
> > > ' Indlæs hele filen i variablen File:
> > > File = Input(LOF(1), #1)
> > > Close #1
> > > ' Find positionen for det første linieskift:
> > > Pos = InStr(File, vbCrLf)
> > > ' Find ud af om der overhovedet er linieskift:
> > > If Pos = 0 Then
> > > ' Der er ikke linieskift.
> > > ' Det nye filinhold bliver NewFirstLine:
> > > File = NewFirstLine
> > > Else
> > > ' Der er linieskift.
> > > ' Den første linie bliver skiftet ud
> > > ' med NewFirstLine:
> > > File = NewFirstLine & Mid(File, Pos)
> > > End If
> > > ' Overskriv den gamle fil med det nye indhold:
> > > Open Filename For Output As #1
> > > ' Semikolon sørger for at der ikke kommer en
> > > ' ekstra linie i bunden af den nye fil:
> > > Print #1, File;
> > > Close #1
> > > End Sub
> > >
> > > - Bjarke Walling Petersen
> > >
> > > Niels skrev:
> > > > Her er noget kode der kan gøre det.
> > > >
> > > > Public Sub ChangeFirstLineInFile(sFileName as string, sTekst as
> string)
> > > >
> > > > Dim sLine as String
> > > >
> > > > Name sFileName As sFileName & ".old" ' Vi ændre lige navnet på
> filen.
> > > >
> > > > Open sFileName & ".old" For Input As 1 ' Læser fra den gamle
> > > > Open sFileName For Output As 2 ' Opretter en ny fil
> > > >
> > > > Line Input #1, sLine ' Her læses den linie der skal ændres
> > > > Print #2, sTekst ' Her skrives den nye tekst
> > > >
> > > > While Not Eof(1) ' Løb resten af filen igennem
> > > > Line Input #1, sLine ' læs linierne
> > > > Print #2, sLine ' og skriv dem i den nye fil'
> > > > Wend
> > > >
> > > > Close #2
> > > > Close #1 ' Luk filerne
> > > >
> > > > Kill sFileName & ".old" ' Slet den gamle fil.
> > > >
> > > > End Sub
> > > >
> > > > Men bemærk der er ikke taget forbehold for at filen kan være tom,
> > > > ej heller at filen kan være skrive beskyttet. - Når ja, jeg har ikke
> > test
> > > > koden.
> > > >
> > > > Mvh
> > > > - Niels G.
> > > >
> > > > "Franz Jäger" <freakazoid@superheros.as> wrote in message
> > > > news:9ih9ot$1bpb$1@news.cybercity.dk...
> > > > > Nogen der kan hjælpe mig med hvordan jeg nemmest kan ændre den
> første
> > > > linie
> > > > > i en tekst-fil?? (jeg er helt nybegynder!!)
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>



Franz Jäger (14-07-2001)
Kommentar
Fra : Franz Jäger


Dato : 14-07-01 14:13

Lige et hurtigt et mere. Jeg skal lave følgende:

Private Sub Command1_Click()
Call ChangeFirstLine("c:\test.txt", "name " + Command1.Caption)
End Sub

og command1.caption skal skrives til filen inde i to ", så resultatet bliver

name "Command1.Caption"

hvordan gør jeg det??



Franz Jäger (14-07-2001)
Kommentar
Fra : Franz Jäger


Dato : 14-07-01 14:32

har selv fundet ud af det

Private Sub Command1_Click()
Call ChangeFirstLine("c:\test.txt", "name " + Chr(34) + Command1.Caption +
Chr(34))
End Sub

"Franz Jäger" <freakazoid@superheros.as> skrev i en meddelelse
news:9ipggd$12t$1@news.cybercity.dk...
> Lige et hurtigt et mere. Jeg skal lave følgende:
>
> Private Sub Command1_Click()
> Call ChangeFirstLine("c:\test.txt", "name " + Command1.Caption)
> End Sub
>
> og command1.caption skal skrives til filen inde i to ", så resultatet
bliver
>
> name "Command1.Caption"
>
> hvordan gør jeg det??
>
>



Bjarke Walling Peter~ (14-07-2001)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 14-07-01 15:38

Du kan også bruge to " efter hinanden...
Koden bliver på den måde:

Private Sub Command1_Click()
Call ChangeFirstLine("c:\test.txt", "name """ & Command1.Caption & """")
End Sub

.... det kan godt se lidt forvirrende ud, men det fylder mindre end at skrive
Chr(34).
Foresten er det bedre at bruge & til at kæde strenge sammen med... i stedet
for +

- Bjarke Walling Petersen

Franz Jäger skrev:
> har selv fundet ud af det
>
> Private Sub Command1_Click()
> Call ChangeFirstLine("c:\test.txt", "name " + Chr(34) + Command1.Caption +
> Chr(34))
> End Sub
>
> "Franz Jäger" <freakazoid@superheros.as> skrev i en meddelelse
> news:9ipggd$12t$1@news.cybercity.dk...
> > Lige et hurtigt et mere. Jeg skal lave følgende:
> >
> > Private Sub Command1_Click()
> > Call ChangeFirstLine("c:\test.txt", "name " + Command1.Caption)
> > End Sub
> >
> > og command1.caption skal skrives til filen inde i to ", så resultatet
> bliver
> >
> > name "Command1.Caption"
> >
> > hvordan gør jeg det??
> >
> >
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste