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


Snabba upp kod

Postades av 2001-03-05 19:08:00 - Jonatan Heyman, i forum visual basic - allmänt, Tråden har 10 Kommentarer och lästs av 734 personer

Hej, jag har ett litet problem. Jag har en sträng som inehåller först en massa mellanrum och sedan en blandning av bokstäver, siffror, mellanrum samt andra tecken.

Här är ett exempel på en sådan sträng:
" AAA1 BBB2 CCC3"

Jag vill nu ta ut endast "AAA1 BBB2 CCC3" ur den strängen. Jag har löst det problemet på detta vis:
---
For i = 2 To Len(temp)
tecken = Mid(temp, i, 1)
If tecken = " " Then

Else
A = Mid(temp, i)
Exit For
End If
Next i
---

Det går väldigt långsamt att göra på detta sätt eftersom jag vill göra så med ca 50st strängar. Jag undrar alltså om man kan snabba upp koden, eller om det finns något annat, snabbare sätt.

Tack.

/RiPPeR


Svara

Sv: Snabba upp kod

Postades av 2001-03-05 19:14:00 - Andreas Hillqvist

Testa Trim, LTrim eller RTrim. Tar bort "vita" tecken.


Svara

Sv: Snabba upp kod

Postades av 2001-03-05 19:32:00 - Jonatan Heyman

Tack för svaret!
Koden blev mindre men det går ungefär lika långsamt.
Nu använder jag denna koden:
---
temp = Mid(temp, 2)
A = LTrim(temp)
---
Jag använder Mid därför att i vissa fall kan det vara en bokstav först av allt och den vill jag inte heller ha med.


Svara

Sv: Snabba upp kod

Postades av 2001-03-05 20:04:00 - Andreas Hillqvist

Varför går den långsamt?

Hur stor är strängen? Körs den flera gånger?


Svara

Sv: Snabba upp kod

Postades av 2001-03-05 20:13:00 - Jonatan Heyman

Den körs 18 gånger på olika strängar som är ganska stora.

Det programmet gör, är att det formaterar en tabell från en viss websida (http://games.swirve.com/utopia) som man har kopierat till clipboarden. Jag vet att andra program, gjorda i VB, gör detta snabt (exakt samma information).


Svara

Sv: Snabba upp kod

Postades av 2001-03-05 20:27:00 - Andreas Hillqvist

Kan du ge exempel text? Eller en exakt sida?


Svara

Sv: Snabba upp kod

Postades av 2001-03-05 20:37:00 - Jonatan Heyman

Här är ett exempel:
---
The Province of Lost Soul (15:22) as of March 17th, YR1.*
Race
Orc
Ruler
Sir RiPPeR*
Land
Peasants
Employment
Utilization
Money
Food
Runes
Trade Balance
536 Acres*
6758*
100%*
100%*
21,717gc*
70,804 bushels*
2966 runes *
-56,500gc*
Soldiers
Warriors
Hammerthrowers
Ogres
Thieves
Wizards
War Horses
218*
1*
1116*
2182*
625 (45%)*
31 (85%) *
963*
---

De rader som har en '*' efter skall mellanrummen tas bort på och resten ska läggas i variablar.

Här är koden jag använder:
---
TEXTBOX.Text = ClipBrd

'Här börjar själva formateringen!
'-------------------------------
Dim i As Integer
Dim b As Integer
b = 20

ClipBrd = GetLine(1)
var.Name = Right(ClipBrd, Len(ClipBrd) - 16)

ClipBrd = GetLine(5)
ClipBrd = Mid(ClipBrd, b)
var.Ruler = LTrim(ClipBrd)

ClipBrd = GetLine(3)
ClipBrd = Mid(ClipBrd, b)
var.Race = LTrim(ClipBrd)

ClipBrd = GetLine(14)
ClipBrd = Mid(ClipBrd, b)
var.Land = LTrim(ClipBrd)

ClipBrd = GetLine(15)
ClipBrd = Mid(ClipBrd, b)
var.Peasants = LTrim(ClipBrd)

ClipBrd = GetLine(16)
ClipBrd = Mid(ClipBrd, b)
var.Employment = LTrim(ClipBrd)

ClipBrd = GetLine(17)
ClipBrd = Mid(ClipBrd, b)
var.Utilization = LTrim(ClipBrd)

ClipBrd = GetLine(18)
ClipBrd = Mid(ClipBrd, b)
var.Money = LTrim(ClipBrd)

ClipBrd = GetLine(19)
ClipBrd = Mid(ClipBrd, b)
var.Food = LTrim(ClipBrd)

ClipBrd = GetLine(20)
ClipBrd = Mid(ClipBrd, b)
var.Runes = LTrim(ClipBrd)

ClipBrd = GetLine(21)
ClipBrd = Mid(ClipBrd, b)
var.TradeBalance = LTrim(ClipBrd)

ClipBrd = GetLine(29)
ClipBrd = Mid(ClipBrd, b)
var.soldiers = LTrim(ClipBrd)

ClipBrd = GetLine(30)
ClipBrd = Mid(ClipBrd, b)
var.OffSpec = LTrim(ClipBrd)

ClipBrd = GetLine(31)
ClipBrd = Mid(ClipBrd, b)
var.DefSpec = LTrim(ClipBrd)

ClipBrd = GetLine(32)
ClipBrd = Mid(ClipBrd, b)
var.Elites = LTrim(ClipBrd)

ClipBrd = GetLine(33)
ClipBrd = Mid(ClipBrd, b)
var.Thiefes = LTrim(ClipBrd)

ClipBrd = GetLine(34)
ClipBrd = Mid(ClipBrd, b)
var.Wizards = LTrim(ClipBrd)

ClipBrd = GetLine(35)
ClipBrd = Mid(ClipBrd, b)
var.Horses = LTrim(ClipBrd)
---

GetLine returnerar allt på en viss rad.

/RiPPeR


Svara

Sv: Snabba upp kod

Postades av 2001-03-05 20:55:00 - Andreas Hillqvist

Spontant skulle jag säga att om GetLine() är en funktion som söker upp en rad och retunerar den. är det funktionen som slukar tid. Testa Split() funktionen och en array. Koden bör se likadant. Byt bara ut Getline mot sträng arrayens namn. Behöver bara lägga till två rader:


TEXTBOX.Text = ClipBrd

'Här börjar själva formateringen!
'-------------------------------
Dim i As Integer
Dim b As Integer
Dim sLines() as String

b = 20
sLines = Split(ClipBrd, vbcrlf)

ClipBrd = sLines(1)
var.Name = Right(ClipBrd, Len(ClipBrd) - 16)

ClipBrd = sLines(5)
ClipBrd = Mid(ClipBrd, b)
var.Ruler = LTrim(ClipBrd)

ClipBrd = sLines(3)
ClipBrd = Mid(ClipBrd, b)
var.Race = LTrim(ClipBrd)

ClipBrd = sLines(14)
ClipBrd = Mid(ClipBrd, b)
var.Land = LTrim(ClipBrd)

ClipBrd = sLines(15)
ClipBrd = Mid(ClipBrd, b)
var.Peasants = LTrim(ClipBrd)

ClipBrd = sLines(16)
ClipBrd = Mid(ClipBrd, b)
var.Employment = LTrim(ClipBrd)

ClipBrd = sLines(17)
ClipBrd = Mid(ClipBrd, b)
var.Utilization = LTrim(ClipBrd)

ClipBrd = sLines(18)
ClipBrd = Mid(ClipBrd, b)
var.Money = LTrim(ClipBrd)

ClipBrd = sLines(19)
ClipBrd = Mid(ClipBrd, b)
var.Food = LTrim(ClipBrd)

ClipBrd = sLines(20)
ClipBrd = Mid(ClipBrd, b)
var.Runes = LTrim(ClipBrd)

ClipBrd = sLines(21)
ClipBrd = Mid(ClipBrd, b)
var.TradeBalance = LTrim(ClipBrd)

ClipBrd = sLines(29)
ClipBrd = Mid(ClipBrd, b)
var.soldiers = LTrim(ClipBrd)

ClipBrd = sLines(30)
ClipBrd = Mid(ClipBrd, b)
var.OffSpec = LTrim(ClipBrd)

ClipBrd = sLines(31)
ClipBrd = Mid(ClipBrd, b)
var.DefSpec = LTrim(ClipBrd)

ClipBrd = sLines(32)
ClipBrd = Mid(ClipBrd, b)
var.Elites = LTrim(ClipBrd)

ClipBrd = sLines(33)
ClipBrd = Mid(ClipBrd, b)
var.Thiefes = LTrim(ClipBrd)

ClipBrd = sLines(34)
ClipBrd = Mid(ClipBrd, b)
var.Wizards = LTrim(ClipBrd)

ClipBrd = sLines(35)
ClipBrd = Mid(ClipBrd, b)
var.Horses = LTrim(ClipBrd)

/Mvh, Andreas


Svara

Sv: Snabba upp kod

Postades av 2001-03-06 12:08:00 - Jens Kangosjärvi

Varför inte ladda hem sidan med INet och med "MS HTML Object Library" ta ut informationen?


Svara

Sv: Snabba upp kod

Postades av 2001-03-06 13:10:00 - Roger Jarl

Skriv Mid$, Right$ och LTrim$ i stället för Mid, Right och LTrim. Det snabbar upp koden med uppskattningsvis 25%.


Svara

Sv: Snabba upp kod

Postades av 2001-03-06 22:06:00 - Jonatan Heyman

Andreas:
Tack för all hjälpen. Nu funkar det perfekt! Jag blev tvungen att ändra så att den inte dimmade arrayen först, för då blev det fel och så blev jag tvungen att ändra så att rad 1=sLines(0), 2=sLines(1)... osv... men sedan funkade det fint.

Roger:
Nu har jag egentligen inget problem med tiden, men jag skall göra så. Tack!


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 619
27 953
271 709
5 754
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