Avatar billede Slettet bruger
12. september 2001 - 09:15 Der er 20 kommentarer og
1 løsning

split linje ved at tælle mellemrum

Jeg troede jeg skulle hente tekst ud fra 2 spalter som var tabulator adskilt.. men men men

virkeligheden er desværre en anden og mere kompliceret..

Det eneste system der er i min fil er at der er det samme antal mellemrum/anslag mellem mine spalter.

fra start til starten på spalte 1 er der inklusiv teksten 10 anslag.
Fra spalte 1 til spalte 2 er der inklusiv teksten 20 anslag.

Eksempel:

Pris      Tid      Ialt
12        12:00    1200
11        13:00    2300

Kan man i asp forklare at den skal vise det felt der er mellem anslag 0-10 og det mellem 10-20???

Hvis i ikke forstår hvad jeg mener kan jeg evt. sende filen...
Avatar billede nordclc Nybegynder
12. september 2001 - 09:20 #1
Du kan måske benytte: Mid(string, start, length)

Pris = Mid(string, 1, 10)
Tid  = Mid(string, 11, 5)

//Claus
Avatar billede nordclc Nybegynder
12. september 2001 - 09:22 #2
For at fjerne blanke, kan du så benytte:

Trim(streng) fjerner mellemrum før og efter strengen.
LTrim(streng) fjerner mellemrum før strengen
RTrim(streng) fjerner mellemrum efter strengen.
Avatar billede Slettet bruger
12. september 2001 - 09:32 #3
Kan du prøve at forklare det ud fra mit nuværende script hvilket er forkert???

<%
\' Variabler
Dim fso, f, filespec

\' Filesystem objektet
Set fso = CreateObject(\"Scripting.FileSystemObject\")

\' Find den fysiske placering af tekstfilen
filespec = Server.Mappath(\"/log/ROTA371.TXT\")

\' Åbn tekstfilen
Set f = fso.OpenTextFile(filespec,1)
antal = 0

do while not f.AtEndOfStream
antal =antal + 1
    Line = f.readline
    LineSplit1 = split(Line, \"      \")
    LineSplit2 = split(Line, \"  \")
    LineSplit3 = split(Line, \"  \")
    response.write LineSplit3(5)


response.write(\"<br>\")
loop 
   


f.Close

%>
Avatar billede nordclc Nybegynder
12. september 2001 - 09:37 #4
Så skal jeg se din textfil! Hvad er din mail adresse?
Avatar billede Slettet bruger
12. september 2001 - 10:07 #5
du må gerne se filen men det jeg mener er om du kan vise mig hvad du mener ved hjælp af det script jeg har nu...
Avatar billede nordclc Nybegynder
12. september 2001 - 10:12 #6
Jeg er nødt til at vide, om kolonne 2,3,4... osv starter i samme position hver gang, på hver linie i din text fil (eks. 1)? Eller om der er 3 blanke mellem kolonne 1 og 2.....(eks 2)

Eks. 1:
Pris      Tid      Ialt
12        12:00    1200
11        13:00    2300
1        11:00    100

Eks. 2:
Pris      Tid      Ialt
12        12:00    1200
11        13:00    2300
1        11:00    100
Avatar billede nordclc Nybegynder
12. september 2001 - 10:14 #7
UPS, i eksempel 1 skal de 3 Tidsfelter står lige under hinanden, ligeledes skal ialt felterne stå under hinanden.
Avatar billede Slettet bruger
12. september 2001 - 10:27 #8
der er det samme antal anslag mellem kolonnerne men det er inklusiv den tekst der står i hver kolonne....

Avatar billede nordclc Nybegynder
12. september 2001 - 10:32 #9
Jeg forstår stadig ikke havd du mener med \"det er inklusiv den tekst der står i hver kolonne\"!

Starter tid i f.eks. position 10 på hver linie i din text fil?
Avatar billede Slettet bruger
12. september 2001 - 10:45 #10
Ja det gør den..

Et eksempel:

Pris      Tid      ialt
1200       

I ovenstående eksempel er der 10 anslag fra Pris til Tid. Jeg mener ikke mellemrum men anslag. Forskellen er at anslag er inklusiv teksten \"1200\" hvor mellemrum er antallet på anslag fra slutningen af teksten \"1200\" til spalten \"Tid\"

I mit tilfælde er der fast anslag fra fx spalten \"Pris\" til spalten \"Tid\" inklusiv tekst...

forstår godt hvis du er lidt forvirret. :0)

Avatar billede nordclc Nybegynder
12. september 2001 - 10:54 #11
Prøv med dette:

<%
\' Variabler
Dim fso, f, filespec

\' Filesystem objektet
Set fso = CreateObject(\"Scripting.FileSystemObject\")

\' Find den fysiske placering af tekstfilen
filespec = Server.Mappath(\"/log/ROTA371.TXT\")

\' Åbn tekstfilen
Set f = fso.OpenTextFile(filespec,1)
antal = 0

do while not f.AtEndOfStream
antal =antal + 1
    Line = f.readline
    pris = Rtrim(mid(Line,1,9))
    tid  = mid(Line,10,5)
    ialt = Rtrim(mid(Line,18,9))
    response.write pris & \' \' & tid & \' \' & ialt & \'<br>\'
loop 

f.Close
%>
Avatar billede Slettet bruger
12. september 2001 - 11:28 #12
Det er som om den ikke respekterer anslagene. FX så viser den Pris og Tid i en linje selvom jeg kun henter Pris...

Men den starter på det rigtige anslag..
Avatar billede nordclc Nybegynder
12. september 2001 - 11:33 #13
Du har rettet start/slut position i mit forslag ikke?

Vis lige hvad du fik ud!
Avatar billede Slettet bruger
12. september 2001 - 11:46 #14
Avatar billede nordclc Nybegynder
12. september 2001 - 11:49 #15
Pris, tid og ialt hvor????
Avatar billede Slettet bruger
12. september 2001 - 12:01 #16
det var et eksempel...

Der er tale om sang og kunstner som skal vises i to spalter.

Derudover er der en masse andet skrammel som ikke skal vises.

Du kan se hente tekstfilen her:;

http://www.radiocharlie.dk/test/admin/ROTA371.TXT

Avatar billede nordclc Nybegynder
12. september 2001 - 12:29 #17
Ahhh, jeg prøver på ny ;o)

<%
\' Variabler
Dim fso, f, filespec

\' Filesystem objektet
Set fso = CreateObject(\"Scripting.FileSystemObject\")

\' Find den fysiske placering af tekstfilen
filespec = Server.Mappath(\"/log/ROTA371.TXT\")

\' Åbn tekstfilen
Set f = fso.OpenTextFile(filespec,1)
antal = 0

do while not f.AtEndOfStream
antal =antal + 1
    Line    = f.readline
    sang    = Rtrim(mid(Line,22,30))
    kunstner = mid(Line,53,30)
    response.write sang & \', \' & kunstner & \'<br>\'
loop 

f.Close
%>
Avatar billede nordclc Nybegynder
12. september 2001 - 12:30 #18
Ups, 2 spalter, så det først nu. Kommer om lidt!
Avatar billede nordclc Nybegynder
12. september 2001 - 12:39 #19
<%
\' Variabler
Dim fso, f, filespec

\' Filesystem objektet
Set fso = CreateObject(\"Scripting.FileSystemObject\")

\' Find den fysiske placering af tekstfilen
filespec = Server.Mappath(\"/log/ROTA371.TXT\")

\' Åbn tekstfilen
Set f = fso.OpenTextFile(filespec,1)
antal = 0

\' Start tabel
response.write \"<table border=\'0\' cellpadding=\'0\' cellspacing=\'0\' width=\'300\'>\"

do while not f.AtEndOfStream
  antal =antal + 1
  Line    = f.readline
  sang    = Rtrim(mid(Line,22,30))
  kunstner = mid(Line,53,30)
  response.write \"<tr><td width=\'150\'>\" & sang & \"</td>\"
  response.write \"<td width=\'150\'>\" & kunstner & \"</td></tr>\"
loop 

\' Slut tabel
response.write \"</table>\"

f.Close
%>
Avatar billede Slettet bruger
13. september 2001 - 13:46 #20
Tjae... det må jeg sige... problem fixed...takker og sender lidt points...

Avatar billede nordclc Nybegynder
13. september 2001 - 13:47 #21
;o) Glæder mig, jeg troede du havde opgivet det igen!
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