Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Gräva ut värden.

Postades av 2004-07-14 20:30:38 - Johannes Strömberg, i forum asp - allmänt, Tråden har 20 Kommentarer och lästs av 693 personer

Halloj.
Jag har en liten fundering, går det att plocka ut värden ur en HTML-fil genom att läsa den (mha FSO)??

Om någon känner sig manad så har jag filen på

http://www.jaggernaut.com/test.html

De saker jag är ute och fiskar efter är postnummer samt vikt.

Någon som har en idé?? Jag testade lite med InStr men det rör till det (kan ju också vara jag själv som rör till det förvisso)...

Hur som helst, jag är ute efter att kunna mata igenom hela HTML-filen efter postnummer och vikt, resten är oväsentligt.


//Johannes


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 16:07:06 - Thomas Vanhaniemi

Som Tobbe skrev, den funktionen hämtar källkoden och sen Regular Expressions så är allt fixat...

<code>
Function GetKolliData(Data)
Dim RegExp
Dim Res
Set RegExp = New RegExp

RegExp.Global = True
RegExp.IgnoreCase = True

'Mönster för postnummer och vikt
RegExp.Pattern = "<b>Postnr:.+?<b>(\d+).+?<b>Vikt:.+?<b>\s*([^<]+)<"

Dim Matches
Matches = RegExp.Execute(Data)

Dim Match
For Each Match In Matches
If Not Len(Res) = 0 Then Res = Res & vbCrLf
Res = Res & RegExp.Replace(Match.Value, "$1" & vbTab & "$2")
Next

Set RegExp = Nothing
Set Matches = Nothing
Set Match = Nothing

GetKolliData = Res
End Function
</code>

Ovanstående borde fungera, retunerar en sträng där varje sektion är åtskild av radbrytning och postnummer samt vikt är åtskild av tab...

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 16:34:22 - Johannes Strömberg

Kärlek.. Tackar och bugar.. En sista fråga, hur anropar jag GetKolliData för att visa alla värden som hittas??


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 16:45:30 - Thomas Vanhaniemi

Använd funktionerna såhär...
Ersätt adressen till adressen du vill hämta informationen från...
Fungerar även om det är en dynamisk sida som asp eller php eftersom allt ändå är HTML i slutändan...

<code>
Dim Data
Data = GetKolliData(GetText("http://www.dindomän.se/dinmapp/filen.html"))

Dim Sections()
Sections = Split(Data, vbCrLf)

Dim i
Dim Parts()
For i = 0 To UBound(Sections)
Parts = Split(Sections(i), vbTab)
Respone.Write(Part(0)) 'Skriver ut postnummer
Respone.Write(Part(1)) 'Skriver ut vikten
Next
</code>

Med hjälp av ovanstående borde du komma igång med att hämta ut datat...

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 17:12:28 - Johannes Strömberg

Jag körde som du sa och använde:

Data = GetKolliData(GetText("http://www.jaggernaut.com/test.html"))

Men jag får samma fel som jag fick innan:

Microsoft VBScript runtime (0x800A01C2)
Wrong number of arguments or invalid property assignment

Och den raden i koden är:

Matches = RegExp.Execute(Data)

Nåt är fuffens...


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 17:26:42 - Thomas Vanhaniemi

Sorry, ett litet fel smög sig in i funktionen...
Följande är testat och fungerar...

<code>
Function GetKolliData(Data)
Dim RegExp
Dim Res
Set RegExp = New RegExp

RegExp.Global = True
RegExp.IgnoreCase = True

'Mönster för postnummer och vikt
RegExp.Pattern = "<b>Postnr:.+?<b>(\d+).+?<b>Vikt:.+?<b>\s*([^<]+)<"

Dim Matches
Set Matches = RegExp.Execute(Data)

Dim Match
For Each Match In Matches
If Not Len(Res) = 0 Then Res = Res & vbCrLf
Res = Res & RegExp.Replace(Match.Value, "$1" & vbTab & "$2")
Next

Set RegExp = Nothing
Set Matches = Nothing
Set Match = Nothing

GetKolliData = Res
End Function
</code>

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 17:40:48 - Johannes Strömberg

Ett steg närmare glädjens högtid.. Men jag få en Type Mismatch på första Split'en (Sections = Split(Data, vbCrLf)
)

Jag testade att ersätta alla komman med punkter i tron om att det bara hade med numeriska värden och liknande att göra, men den bad mig fortfarande att fara och flyga.. Någon idé om vad som kan vara snett?


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 17:46:33 - Thomas Vanhaniemi

Testa lägga till () efter både Sections och Parts så det bli Sections() = Split... och Parts() = Split...

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 17:56:34 - Johannes Strömberg

Nu funkar det.. Jag fimpade () på Sections och Parts. När jag la dem innan så fick jag Subscript out of range. Men utan dem funkade det klockrent.. Tack så mycket för hjälpen!!! :o)


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 18:06:19 - Thomas Vanhaniemi

Bra att du fick det att fungera, men det hade ju med parenteserna att göra men inte på det sättet jag tänkte mig ;)
Är inte varje dag jag sitter och skriver ASP...

Får man fråga vad det ska användas till? =)

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 19:07:04 - Johannes Strömberg

Det är för att underlätta mitt eget liv en smula.. I jobbet så måste jag sammanställa en rapport över de paket jag levererar. Och ok om det är som nu under semestertid, typ 10 paket om dagen, men sen när det är uppåt en 60-70 så är det halvsegt att dela in dem i regioner och vikter.. Så då gör jag helt enkelt en liten snurra som själv delar in det efter givna regler, utifrån HTML-filen. Så slipper jag dunka huvudet i betongväggen i ren desperation senare.. ;)


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 19:48:19 - Thomas Vanhaniemi

Ok, låter ju bra att du kan automatisera lite =)
Är ju det programmering är till för ;)

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 20:22:02 - Johannes Strömberg

Precis, då kan man låta burken SJÄLV gå igenom alla 568 postnummer och vilken zon de tillhör och på så sätt skyffla in dem där de ska vara.


Svara

Sv: Gräva ut värden.

Postades av 2004-07-15 20:40:35 - Johannes Strömberg

Hur gör du för att skapa ett RegExp mönster? Det är rörigt det där, jag funderade på om jag skulle inkludera det där Kollinumret också (det stora fetstilta) för att ha knas på när något barkar åt helsike.


Svara

Sv: Gräva ut värden.

Postades av 2004-07-16 01:06:30 - Thomas Vanhaniemi

Jadu, jag har helt enkelt bara lärt mig med tiden hur man skriver fungerande mönster ur huvudet, även om de ibland kan behöva finslipas lite...
Men i ditt fall är det inte speciellt svårt att ordna så att den även tar kollinummer...

Är till exempel BD345678912XJ ett kollinummer?
Börjar det alltid på "BD" och slutar alltid på "XJ" eller kan mönstret variera?

För att även få med kollinummer kan du använda följande funktion, endast lite modigierad mot den förra...

<code>
Function GetKolliData(Data)
Dim RegExp
Dim Res
Set RegExp = New RegExp

RegExp.Global = True
RegExp.IgnoreCase = True

'Mönster för postnummer och vikt
RegExp.Pattern = "<b>(BD\d+XJ).+?<b>Postnr:.+?<b>(\d+).+?<b>Vikt:.+?<b>\s*([^<]+)<"

Dim Matches
Matches = RegExp.Execute(Data)

Dim Match
For Each Match In Matches
If Not Len(Res) = 0 Then Res = Res & vbCrLf
Res = Res & RegExp.Replace(Match.Value, "$1" & vbTab & "$2" & vbTab & "$3")
Next

Set RegExp = Nothing
Set Matches = Nothing
Set Match = Nothing

GetKolliData = Res
End Function
</code>

Ovanstående retunerar datat i ordningen Kollinummer, Postnummer, Vikt så när du kört split så finns det tre värden, 0 är kollinummer, 1 är postnummer och 2 är vikten...

Om du vill lära dig regular expressions rekommenderar jag http://www.regular-expressions.info

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-16 06:05:59 - Johannes Strömberg

Ahh.. Tackar och bugar, utmärkt, måste bara justera den så den fixar sig med lite olika typer att kolli ID'n, just här är det BD och XJ, men det KAN också vara en massa andra sådana prylar, eller bara en massa siffror också, det är en rörig smet det där... Jag satt och läste lite på den sidan nu, det verkar ju ganska sunt. Även om själva Pattern delen mest liknar en ettårings lek med tangentbordet vid första anblicken..

:o)


Svara

Sv: Gräva ut värden.

Postades av 2004-07-16 06:42:12 - Thomas Vanhaniemi

Kan fungera med följande mönster då, har dock inte testat...
<code>
<b>([^\s]+).+?<b>Postnr:.+?<b>(\d+).+?<b>Vikt:.+?<b>\s*([^<]+)<
</code>

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-16 14:11:12 - Johannes Strömberg

Det här är herrejesus svårt i mina ögon, nu har jag läst så det blöder ur öronen på mig men jag är fortfarande inte helt med på det.. Men Man måste ju kunna matcha (kanske inte med RegExp, vad vet jag) så att den plockar ut värdet mellan:

<td align="left" width="25%" colspan="25"><font size="4"><b>

OCH

</b></font></td>

Eller har jag helt fel?? För det är däremellan som det finns matnyttigheter (d v s kolli-ID)


Svara

Sv: Gräva ut värden.

Postades av 2004-07-16 14:57:46 - Thomas Vanhaniemi

Se mitt förra inlägg, så ska mönstret se ut...
Men eftersom jag inte hade satt code taggarna runt den som blev alla b taggar aktiva så de inte syntes...

Men det ska fungera...

Mvh,
Thomas


Svara

Sv: Gräva ut värden.

Postades av 2004-07-16 16:06:49 - Johannes Strömberg

Oj oj, det här är så bra att jag nästan börjar gråta.. Tack så HEMSKT mycket för hjälpen.. Sanslöst bra.. Tack som fan!! :o))))))

/Johannes


Svara

Sv: Gräva ut värden.

Postades av 2004-07-16 16:14:08 - Thomas Vanhaniemi

Varsågod, det var bara kul att kunna hjälpa =)
Gör inte speciellt mycket annat om dagarna så, är arbetslös...

Är det något mer så är det bara att kontakta mig =)

Mvh,
Thomas


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 786
27 960
271 761
807
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies