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

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Læs en ";" fil ?
Fra : Lars


Dato : 30-01-07 19:38

Hej

Jeg har brug for, at læse en simikolonfil - Jeg vil læse den og sætte
ind i en database

eks

arbejder 1 ; arbejder 2 ; arbejder 3
jan hansen ; peter jørgensen ; ole olsen
kurt andersen ; peter hansen ; karl nielsen

er der nogen der ved hvordan man tager de enkle navne ud af sådan en
fil
så de kan sættes ind i en access-database ???

mvh
Lars


 
 
Jørn Andersen (30-01-2007)
Kommentar
Fra : Jørn Andersen


Dato : 30-01-07 20:02

On 30 Jan 2007 10:37:47 -0800, "Lars" <lkj002@hotmail.com> wrote:

>Jeg har brug for, at læse en simikolonfil - Jeg vil læse den og sætte
>ind i en database
>
>eks
>
>arbejder 1 ; arbejder 2 ; arbejder 3
>jan hansen ; peter jørgensen ; ole olsen
>kurt andersen ; peter hansen ; karl nielsen
>
>er der nogen der ved hvordan man tager de enkle navne ud af sådan en
>fil
>så de kan sættes ind i en access-database ???

Hvis det var en én-dimensionel fil, kunne du bruge Split-funktionen
til at omdanne til et array og så evt. loope dig gennem navnene.

Men denne fil er to-dimensionel - både semikolon-separeret og
"linieskift-separeret". Skal det også indsættes to-dimensionlet -
eller bare som en lang liste?

Hvis det skal indsættes to-dimensionelt, kunne du lave to splits og
have to loops indeni hinanden. - Ikke særligt ressource-effektivt, men
jeg fornemmer heller ikke, at det er noget, du skal gøre flere gange i
timen?


En helt anden løsningsvej er at importere dine data i en Access-fil
"derhjemme" (det er utroligt let) og så kopiere fra den ene til den
anden via ASP.
Jeg vil nok gå efter den sidste løsning, medmindre det er noget, der
skal ske tit.

Men et eller andet siger mig, at det må kunne gøres smartere?

Good luck!

--
Jørn Andersen,
Brønshøj

Jens Gyldenkærne Cla~ (30-01-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 30-01-07 22:56

Jørn Andersen skrev:

> Så skal du først have åbnet filen og indlæst indholdet i en
> variabel. Til det formål kan du bruge FSO - File System Object
> - se fx: <url: http://www.html.dk/tutorials/asp/lektion15.asp>
>
> Du kan selv vælge hvilket tegn du vil bruge til at markere
> linieskift. Jeg har valgt ":".

Man kan også bare læse en linje ad gangen:

Do While not f.AtEndOfStream
aktuelLinje = f.ReadLine
' kode der håndterer linjen....
Loop
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Lars (30-01-2007)
Kommentar
Fra : Lars


Dato : 30-01-07 20:30

Jo, det er en CSV-fil tror jeg den hedder og skal indlæses
en gang hver måned... Der bliver div. navne opdateret.

Og jo, jeg kunne godt smide det over i databasen manuelt
Men ideen var, at folk (eller ham der sidder med den nyeste fil)
der bruger min hjemmeside og ikke
er så "stive" i konvatering bare skulle kunne fortælle hvor filen
ligger... En form for upload og så var det min ide, at asp koden
læser filen og ligger div. navne ind i databasen...

Og ja, det er 2 dim...
For den skal læse hver linie, finde div. navne og hoppe til næste
linie.

Men jeg aner ikke hvordan jeg skal gribe det an... ???

Lars


>
> Hvis det var en én-dimensionel fil, kunne du bruge Split-funktionen
> til at omdanne til et array og så evt. loope dig gennem navnene.
>
> Men denne fil er to-dimensionel - både semikolon-separeret og
> "linieskift-separeret". Skal det også indsættes to-dimensionlet -
> eller bare som en lang liste?
>
> Hvis det skal indsættes to-dimensionelt, kunne du lave to splits og
> have to loops indeni hinanden. - Ikke særligt ressource-effektivt, men
> jeg fornemmer heller ikke, at det er noget, du skal gøre flere gange i
> timen?
>
> En helt anden løsningsvej er at importere dine data i en Access-fil
> "derhjemme" (det er utroligt let) og så kopiere fra den ene til den
> anden via ASP.
> Jeg vil nok gå efter den sidste løsning, medmindre det er noget, der
> skal ske tit.
>
> Men et eller andet siger mig, at det må kunne gøres smartere?
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj



Jørn Andersen (30-01-2007)
Kommentar
Fra : Jørn Andersen


Dato : 30-01-07 21:16

On 30 Jan 2007 11:29:32 -0800, "Lars" <lkj002@hotmail.com> wrote:

>Jo, det er en CSV-fil tror jeg den hedder og skal indlæses
>en gang hver måned... Der bliver div. navne opdateret.
>
>Og jo, jeg kunne godt smide det over i databasen manuelt
>Men ideen var, at folk (eller ham der sidder med den nyeste fil)
>der bruger min hjemmeside og ikke
>er så "stive" i konvatering bare skulle kunne fortælle hvor filen
>ligger... En form for upload og så var det min ide, at asp koden
>læser filen og ligger div. navne ind i databasen...
>
>Og ja, det er 2 dim...
>For den skal læse hver linie, finde div. navne og hoppe til næste
>linie.
>
>Men jeg aner ikke hvordan jeg skal gribe det an... ???


Hvis vi tager udgangspunkt i:
arbejder 1 ; arbejder 2 ; arbejder 3
jan hansen ; peter jørgensen ; ole olsen
kurt andersen ; peter hansen ; karl nielsen

Så skal du først have åbnet filen og indlæst indholdet i en variabel.
Til det formål kan du bruge FSO - File System Object - se fx:
<url: http://www.html.dk/tutorials/asp/lektion15.asp>

Du kan selv vælge hvilket tegn du vil bruge til at markere linieskift.
Jeg har valgt ":".

Hvis vi så har
- gemt indholdet i en variabel: strFil
- har åbnet et Connection-objekt, som hedder objConn

arrEntry = Split(strFil, ":")
' Vi springer over første linie, som blot indeholder feltnavne.
For x = 1 To UBound(arrEntry)
strSql = fktGetSql(arrEntry(x))
objConn.Execute(strSql)
Next

Function fktGetSql(varString)
' Funtionen opbygger en SQL-streng for hver linie
Dim a, varArrString, varStrSql

' Split den enkelte linie
varArrString = Split(varString, " ; ")

varStrSql = "INSERT INTO tabelnavn" & _
" (arbejder1, arbejder2, arbejder3) VALUES ("

For a = 0 To 2
If a > 0 Then
varStrSql = varStrSql & ", "
End If
varStrSql = varStrSql & "'" & varArrString(a) & "'"
Next

varStrSql = varStrSql & ");"
fktGetSql = varStrSql
End Function


Ovenstående er ikke testet, men det kan måske give dig en idé om en
mulig løsning.
Der er ikke taget højde for, at der evt. kan være tomme felter eller
andre fejl i filen.

Håber det kan bringe dig lidt videre.


PS: Gider du tage et kig på:
<url: http://www.usenet.dk/netikette/citatteknik.html>

--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste