webForumDet fria alternativet

Läsa in textfil

ASP

28 svar · 1 582 visningar · startad av devotion · sida 2 av 2

Frågan, av devotion

Hej! Nu är det panik.... Någon som kan hjälpa...?? Jag har en textfil Som är uppbyggd så här: 020061016 EIOpris 100000040EKKJ 1X10/10 20061017 20100019700 ACD 20300039700 0013 20600012445 F00 21100036000 00AA 21200046300+01C 300778 Första raden är en startrad. Attt det är första raden kan man se genom att den börjar på 0 (noll) Andra raden är artikelraden. Det

Läs frågan i sin helhet →
Medlem sedan dec. 20025 483 inlägg
#21

Tjena! :)

r.execute(objFile.readline) -> r.execute(sLine)
Medlem sedan juni 20014 421 inlägg
#22

angående loop-lösning är det allt som oftast väldans prestandakrävande...speciellt for-loopar...

Medlem sedan jan. 20013 582 inlägg
#23

Peter S skrev:

Tjena! :)

r.execute(objFile.readline) -> r.execute(sLine)

:r gahh... ibland är inte ögonen med... Tack :h

Sen, skulle du vilja förklara dina regexputtryck? så att jag själv kan ändra i antal tecken som skall tas med...

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#24

colione skrev:

angående loop-lösning är det allt som oftast väldans prestandakrävande...speciellt for-loopar...

Är regexp bättre då?

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#25
^\d(\d{8})(.{25})(\d{8})
  \d - matchar den första siffran
  (\d{8}) - matchar de efterföljande åtta siffrorna
  (.{25}) - matchar de efterföljande 25 tecknen
  (\d{8}) - matchar de efterföljande åtta siffrorna

^\d(\d{2})(\d{8})([\+\- \?])([^\s]+)
  \d - matchar den inledande siffran
  (\d{2}) - matchar de efterföljande två siffrorna
  (\d{8}) - matchar de efterföljande åtta siffrorna
  ([\+\- \?]) - matchar det nästföljande tecknet som kan vara '+', '-', ' ' eller '?'
  ([^\s]+) - matchar en eller flera icke-whitespace

:)

Medlem sedan jan. 20013 582 inlägg
#26

Peter S skrev:

^\d(\d{8})(.{25})(\d{8})
  \d - matchar den första siffran
  (\d{8}) - matchar de efterföljande åtta siffrorna
  (.{25}) - matchar de efterföljande 25 tecknen
  (\d{8}) - matchar de efterföljande åtta siffrorna

^\d(\d{2})(\d{8})([\+\- \?])([^\s]+)
  \d - matchar den inledande siffran
  (\d{2}) - matchar de efterföljande två siffrorna
  (\d{8}) - matchar de efterföljande åtta siffrorna
  ([\+\- \?]) - matchar det nästföljande tecknet som kan vara '+', '-', ' ' eller '?'
  ([^\s]+ - matchar en eller flera icke-whitespace

:)

Coolt!

Tack! :f

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#27

Nu funkar det ju fint...

Men hur gör man för att lägga in lite felhantering... Allt bygger ju på att varje textrad har rätt format. Men det kan ju bli fel. Hur gör man för att scriptet ska tugga på och spara undan alla fel i en variabel?

Det är ju lite retfullt att efter 380 000 rader bli fel och få göra om allt...

Mvh
Henrik

Medlem sedan dec. 20025 483 inlägg
#28

När set m = r.execute() körts, bör m.count > 0. Du kan alltså lägga till en if-sats like so:

set m = r.execute(...)
if m.count > 0 then
  ' ok, allt som det skall
else
  ' ooops!
end if
Medlem sedan jan. 20013 582 inlägg
#29

Aha! :)

Ska prova det!

Mvh
Henrik

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)