Avatar billede mrjowns Novice
12. december 2001 - 12:34 Der er 12 kommentarer og
2 løsninger

Indsæt og hent fra txt-fil via .asp

Jeg har en opgavedb hvor User bliver logget automatisk ( USER LOGON ). Bliver der f.eks. oprettet en ny opgave i databasen ( access ) er der et felt ( et felt, kommasepereret ) hvor man kan skrive personer ( initialer ) der er interesserede i netop denne opgave. Da der teoretisk kunne være flere hundrede er det nok smartest at gemme disse i en txt-fil istedet for i selve databasen. Men hvordan gemmer jeg dem så jeg genkende dem igen til lige netop denne opgave ( f.eks. ved at bruge opgaveid\'et )? Og hvordan henter ( genkender ) jeg dem igen, hvis de f.eks. skulle redigeres? Kan nogen hjælpe med dette eller komme med en bedre/anden løsning?
Avatar billede flushout Nybegynder
12. december 2001 - 12:36 #1
html>
<title>Læse fra tekstfiler</title>
<head>
</head>
<body>
<%
Dim fso, f, filespec
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"dinfil.txt\")
Set f = fso.OpenTextFile(filespec,1)

\' Læs linie for linie indtil slutningen af filen
Do While not f.AtEndOfStream
  Response.write f.ReadLine & \"<br>\"
Loop

f.Close
%>
</body>
</html>
Avatar billede flushout Nybegynder
12. december 2001 - 12:37 #2
hvis du kun vil læse en linie skal du fjerne loopet og specificere hvilken linie du vil læse :o)
Avatar billede flushout Nybegynder
12. december 2001 - 12:38 #3
dit id kan evt være linienummeret
Avatar billede flushout Nybegynder
12. december 2001 - 12:40 #4
Dette kan evt også bruges:

<%
Dim fso, f, filespec
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"/tutorials/asp/tekstfil.txt\")
Set f = fso.OpenTextFile(filespec,2)

\' Skriv tekst i en linie
f.WriteLine \"VBScript og ASP er sjovt!\"

\' Åbn filen til læsning og læs linie
Set f = fso.OpenTextFile(filespec,1)
Response.write f.ReadLine

f.Close
%>
Avatar billede sparkl Nybegynder
12. december 2001 - 12:50 #5
Istedet for at skrive det til en .txt fil så skriv det til en .csv fil.

En csv fil er sådan set bare en tekstfil hvor hver linie svarer til et ID og hver punkt er delt af et \";\"

Så kan du åbne filen i Excel hvilket gør det lettere at overskue
Avatar billede sparkl Nybegynder
12. december 2001 - 12:52 #6
CSV filer kan også importeres af Access
Avatar billede mrjowns Novice
12. december 2001 - 13:02 #7
Men hovedideen er, hvordan jeg gemmer, genkender og henter! Ja, nu ved jeg hvordan man generelt gemmer og henter i en txt-fil - det er fint! Men hvordan genkender jeg?
Avatar billede flushout Nybegynder
12. december 2001 - 13:10 #8
http://www.html.dk/tutorials/asp/lektion17.asp

Her står der hvordan du håndterer en db med id osv. :o)
Avatar billede flushout Nybegynder
12. december 2001 - 13:11 #9
Det er nok dette du er ude efter ??

<%
\' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"/cgi-bin/database.mdb\")
Conn.Open DSN

\' Hent fra databasen afhængig af værdien id fra URL
strSQL = \"Select * From personer Where Id = \" & Request.Querystring(\"id\")
Set rs = Conn.Execute(strSQL)

\' Skriv personens data
Response.Write \"<dt>Navn:</dt><dd>\" & rs(\"Fornavn\") & \" \" & rs(\"Efternavn\") & \"</dd>\"
Response.Write \"<dt>Telefon:</dt><dd>\" & rs(\"Telefon\") & \"</dd>\"
Response.Write \"<dt>Fødselsdato:</dt><dd>\" & FormatDateTime(rs(\"Foedselsdato\"), vbLongDate) & \"</dd>\"

Conn.Close
Set Conn = Nothing
%>
Avatar billede mrjowns Novice
12. december 2001 - 13:15 #10
Måske udtrykte jeg mig ikke klart nok! Jeg er godt klar over hvordan jeg håndterer id i db\'er! Men hvordan lagrer jeg et id i txt-filen så jeg ved hvad for en linie jeg skal bruge ( genkende ) til hver opgave! Hvordan bruger jeg id\'et fra databasen i txt-filen så jeg kan finde lige netop den linie der tilhører den opgave?
Avatar billede sparkl Nybegynder
12. december 2001 - 13:16 #11
Brug opgaveID\'et og skriv det først i hver linie i CSV-filen. Så kan du når du løber linierne igennem hente opgaveID\'et med:

Left(Linie,(Instr(1,Linie, \";\", 0) - 1))
Avatar billede sparkl Nybegynder
12. december 2001 - 13:19 #12
Det der sker er at den piller det ud der står fra starten af linien hen til det første \";\"
Avatar billede sparkl Nybegynder
12. december 2001 - 13:29 #13
Avatar billede mrjowns Novice
12. december 2001 - 13:36 #14
Så ligner det jo noget jeg kan bruge! I har vist hjulpet lige meget begge to ( derfor point-delingen ) - tak for det! --jowns--
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