Avatar billede mjo Nybegynder
17. juli 2002 - 20:59 Der er 8 kommentarer og
2 løsninger

Slette og indsætte linje igen...

Hey!

Mine tidligere oplysninger viser at man ikke kan slette sidste linje og indsætte data igen og lave sidste linje igen uden "mellem oprettelse".

Hvis vi siger der 20 linjer skal jeg altså kun indlæse de 19 og overføre til en ny fil og indsætte noget tekst og så slette den gamle fil og omdøbbe den "Mellem oprettede" til den der skal bruges.

Lidt videre indviklet, men spørg så kan jeg måske komme med en bedre forklaring ;o)

Please help...
Avatar billede keysersoze Ekspert
17. juli 2002 - 21:05 #1
erhm - hva' snakker du om?

database? tekstfil? hvad??? fatter intet af hvad du skriver :o/
Avatar billede musicchart.dk Nybegynder
17. juli 2002 - 21:06 #2
nope... fattær ik' en ski'. :o]
Avatar billede mjo Nybegynder
17. juli 2002 - 21:08 #3
Jeg har tekst fil som måske ser sådan her:

<teks>
<art>
<artname>asd</artname>
</art>
</teks>

Nu vil gerne indsætte nye dater, men normalvis kommer det sådan her:

<teks>
<art>
<artname>asd</artname>
</art>
</teks>
<art>
<artname>asdasdd</artname>
</art>


Men skal være sådan her:
<teks>
<art>
<artname>asd</artname>
</art>
<art>
<artname>asdasdd</artname>
</art>
</teks>

Hjalp det???
Avatar billede mjo Nybegynder
17. juli 2002 - 21:11 #4
Altså hvordan indlæser jeg en tekstfil uden sidste linje???

Det er faktisk en stor hjælp ;O)
Avatar billede eagleeye Praktikant
17. juli 2002 - 21:16 #5
Jeps det er rigtigt man kan ikke med FileSystemObject slette en linie direkte i en fil, man er nød til at enten læse den i memory eller skrive en temp fil så man kan lave en ny rigtig fil..

Tag et kig her for en beskrivelse: http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=133
Avatar billede mjo Nybegynder
17. juli 2002 - 21:20 #6
Jamen hvordan indlæser jeg så hele filen uden den sidste??
Avatar billede coolcoder Nybegynder
17. juli 2002 - 21:20 #7
det er jo en xml-fil. Den er bedst at redigere med xmlDOM!!

Ellers skal du lave et loop der løber linierne i filen igennem, og finder den sidste, fx:

(fso = filsystemobject)
set fil = fso.opentextfile([filnavn], 2)
strNewFil = ""
do while not fil.AtEndOfStream
  strLine = fil.readline
  if strLine = "</teks>" then
    strNewFil = strNewFil & "<art><artname>asdasdd</artname></art>"
  end if
  strNewFil = strNewFil & strLine
loop

fil.write strNewFil
Avatar billede mjo Nybegynder
17. juli 2002 - 21:25 #8
coolcoder> Den kode virker får mig at se meget korrekt, og jeg vil snart teste om den virker. Jeg ved godt man kan benytte en XML plug-in til serveren men da en XML eller TXT fil er opsat på samme måde, betyder det jo ikke det helt store...
Avatar billede eagleeye Praktikant
17. juli 2002 - 21:29 #9
Her koden som kan gøre det, den er ligeglad med hvad sidste linie er og derfor vil den fjerne den sidte linie ligemeget hvad der står på den:

set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile("c:\inetpub\wwwroot\eksperten\rigtigfil.txt", 1)

fileString = ""
do while f.AtEndOfStream = false
  tempLine = f.ReadLine
  'Når det så er sidste linie du vil slette kan du gøre sådan her
  'ved at tjekke om f.AtEndOfStrean = false, hvis den er true
  ' har vi læst sidste linie og den skal ikke skrives til ftemp
  if f.AtEndOfStream = false then
    fileString = fileString & tempLine & vbCrLf
  end if
loop
'Luk filen
f.Close
'Åben filen for skrivning
Set f=fs.OpenTextFile("c:\inetpub\wwwroot\eksperten\rigtigfil.txt", 2)
'Udskriv linie for linie til filen
f.write fileString
'Luk filen
f.Close
Set f = nothing
Avatar billede coolcoder Nybegynder
17. juli 2002 - 21:38 #10
det betyder at du arbejder helt anderledes med filen. Men jeg har ikke lige tid til at skrive noget kode til dig nu. Kan ikke huske det udenad - men du kan bruge noget ala:

xdo.load(fil)
root = xdo.documentElement.firstChild
child = xdo.createElement("art")
root.appendChild(child)
child2 = xdo.createElement("artname")
child2.text = "asdasdd"
child.appendChild(child2)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester