Hejsan Detta kan ev. funka. Skrivet "ur huvudet" så det kan vara saker som är felaktiga eller andra saker jag inte har tänkt på... men det kanske ger dig en idé... Tackar din kod verkar fungera mycket bra då jag endast testat lite smått, men det är saker som dyker upp. Saker jag ej tänkt på. Jag förstår inte hur du menar... är inte all "kod" egentligen en sträng som du får ur xmlhttp? Tjenare, klantade mig vid testkörningen, hade texten som en vanlig sträng därför kom ett fel. Tack för allt, en fråga till som inte är svår. ok... det enklaste är förmodligen att använda sig av Split()-funktionen Tackar, ska kolla över allt då jag har mer tid, återkommer säkert ;) Tjenare ja, alltså om du har följt mitt exempel så är arrField en 1-dimensionell array (vektor), inte en 2-dimensionell. Ursäkta men jag fattar inte hur du menar, ge gärna lite kod till min tröga hjärna. ;)Plocka ut rätt information från en text och sätt in det i en data
Behöver hjälp med förljande:
Jag plockar ut all html kod från en egen sida med xmlhttp
Sedan får jag typ detta:
<html>
<body>
'asd
'asd
Massa kod och sånt jag inte vill ha
-->En text som inte finns mer i koden<--
<table>
<tr><td>Viktigt1</td><td>Viktigt2</td><td>Viktigt3</td><td>Viktigt4</td></tr>
<tr><td>Viktigt1</td><td></td><td>Viktigt2</td><td>Viktigt4</td></tr>
<tr><td>Viktigt1</td><td>Viktigt2</td><td>Viktigt3</td><td>Viktigt4</td></tr>
<tr><td>Viktigt1</td><td>Viktigt2</td><td>Viktigt3</td><td>Viktigt4</td></tr>
<tr><td>Viktigt1</td><td>Viktigt2</td><td>Viktigt3</td><td>Viktigt4</td></tr>
</table>
Etc med onödig kod
</body>
</html>
Det enda som jag vill ha från denna kod är "Viktigt", kan tänka mig att man kan gå fram tills denna delen i koden "-->En text som inte finns mer i koden<--" där det är unikt för hela koden och hoppa till nästa rad och göra något med det jag vill ha.
Sedan vill jag sätta in detta jag får ut i en databas, om jag får ut de olika delarna så är det ju inga problem, men hur får jag det?
Ska jag spara hela koden i en txt fil och sedan köra eller lägga in det i arrayer, snälla hjälp mig jag får ingenting att fungera.
Tack på förhand.Sv: Plocka ut rätt information från en text och sätt in det i en
<code>
Function stripTable(txtXML,txtStart,chSep)
' txtXML = Sträng som skall sökas igenom
' txtStart = Söksträng, används för att hitta starten
' chSep = Tecken för att separera fälten i varje post
Dim txtTemp, intPos, intCh
' Sök rätt på startposition och antal tecken i "tabellen"
intPos = inStr(1,txtXML,txtStart)
intCh = inStr(intPos,txtXML,"</table>") - intPos ' Kan ev. behövas plus eller minus 1 här...
' Skala bort skräp...
txtTemp = Mid(txtXML,intPos,intCh)
txtTemp = Replace(txtTemp,txtStart,"")
txtTemp = Replace(txtTemp,"<table>","")
txtTemp = Trim(txtTemp)
' Fixa till "fält och poster"
txtTemp = Replace(txtTemp,"<tr><td>","")
txtTemp = Replace(txtTemp,"</td><td>",chSep)
txtTemp = Replace(txtTemp,"</td></tr>","")
' Eventuellt kan man här slänga in resultatet i en array först innan retur...
stripTable = txtTemp
End Function
' Exempel på användning
' XMLresult är resultatet av "xmlhttp-get"
Dim data
data = stripTable(XMLresult,"-->En text som inte finns mer i koden<--",";")
</code>
Detta tycker jag i ovan nämnda fall borde returnera en sträng som ser ut så här:
<code>
Viktigt1;Viktigt2;Viktigt3;Viktigt4
Viktigt1;;Viktigt2;Viktigt4
Viktigt1;Viktigt2;Viktigt3;Viktigt4
Viktigt1;Viktigt2;Viktigt3;Viktigt4
Viktigt1;Viktigt2;Viktigt3;Viktigt4
</code>Sv: Plocka ut rätt information från en text och sätt in det i en
Då koden som ska kolla från början innehåller radbrytningar tex.
<html>
<body>
<b>Hej</b>
asdsda
<table>
'etc.
Hur jag gör för att lägga all kod på en rad så det inte fås ett felmedelande pga att koden är uppdelad pga av radbrytningar?
PS: Tack för ditt snabba svar klockan halv två på natten ;)Sv: Plocka ut rätt information från en text och sätt in det i en
En radbrytning är ju också det ett tecken... eller egentligen två... (vbCrLf = CarriageReturn/LineFeed), så jag förstår inte varför du skulle få ett felmeddelande då...
Klockan var <b>inte</b> halv två här nere... eftersom vi är 9 timmar före er... :)
Nu är den däremot snart kvart över 11 på kvällen å det börjar bli dags å krypa till sängs...
Svaret på hur du tar bort radbrytningar är dock att du använder Replace(), typ:
<code>
txt = Replace(txt,vbCrLf,"")
</code>
Tänk bara på att du måste i så fall ändra på min funktion ovan eftersom jag använder just vbCrLf för att skilja på posterna...Sv: Plocka ut rätt information från en text och sätt in det i en
Sorry, tack ändåSv: Plocka ut rätt information från en text och sätt in det i en
När jag får ut detta tex.
Viktigt1;Viktigt2;Viktigt3;Viktigt4
Viktigt1;;Viktigt2;Viktigt4
Viktigt1;Viktigt2;Viktigt3;Viktigt4
Viktigt1;Viktigt2;Viktigt3;Viktigt4
Viktigt1;Viktigt2;Viktigt3;Viktigt4
Hur ska jag då fin in varje rad i en databas separerade från varandra?
Jag fattar att jag ska använda mig av arrayer men får det inte att bli korrekt.
Tack på förhandSv: Plocka ut rätt information från en text och sätt in det i en
Detta är även det skrivet "ur huvudet"... med samma reservation för fel som ovan... =)
<code>
' Hämta data från webbsida
Dim data
data = stripTable(XMLresult,"-->En text som inte finns mer i koden<--",";")
' Deklarera lite variabler...
Dim i, j, arrData, arrField
' Släng in varje rad i en array(vektor)
arrData = Split(data,vbCrLf) ' Splitta vid radbryt(vbCrLf)
' Loopa igenom arrayen(raderna)
For i = 0 to uBound(arrData)
' Släng in varje "fält" i en array(vektor)
arrField = Split(arrData(i),";") ' Splitta vid semikolon (om det är separator ovan)
' Loopa igenom fälten och släng in i databas
For j = 0 to uBound(arrField)
'
' Släng in arrField(j) i databasen
'
Next
Next
</code>
Finns förmodligen andra (bättre?) sätt att göra det på... med tanke på att ett recordset egentligen är en array(vektor)... men det där borde funka...Sv: Plocka ut rätt information från en text och sätt in det i en
Sv: Plocka ut rätt information från en text och sätt in det i en
Har nu lyckats att anpassa allt efter hur jag vill ha det, har dock ett problem. Jag kan inte lägga in datan i databsen. Jag antar att det har med arrField(j) ´s utseende att göra.
Borde jag inte kunna skriva in i databasen så här.
<code>
strSQL="INSERT INTO tbltabell (1, 2, 3, 4, 5, 6, 7) VALUES ( '"& arrField(0,j) &"', '"& arrField(1,j) &"', '"& arrField(2,j) &"', '"& arrField(3,j) &"', '"& arrField(4,j) &"', 15, '"& arrField(6,j) &"')"
objConn.Execute(strSQL)
</code>
Jag använder mig alltså av arrField(1,j) där du har skrivit, " ' Loopa igenom fälten och släng in i databas "
Men jag antar att det har med arrayens utseende att göra eller yrar jag bara?
Hur ska jag göra?
Tack på förhandSv: Plocka ut rätt information från en text och sätt in det i en
Vad är talet 15 för något?
Om du skall lägga in dom på det sätt som du visade så behöver du ju inte ens skapa en array av dom utan byt bara ut semikolonet till (',') Sv: Plocka ut rätt information från en text och sätt in det i en