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


Returnera array?

Postades av 2002-08-11 12:58:09 - Rickard Nilsson, i forum visual basic - allmänt, Tråden har 5 Kommentarer och lästs av 409 personer

Hejsan!

Har följande problem. Mitt program ska skapa en uppsättning personer, alla med för- och efternamn. Till detta ändåmål har jag en funktion som genererar slumpvalda för- och efternamn. Som det ser ut nu anropas denna funktionen varje gång ett namn ska genereras och ska jag då skapa en grupp på 30 personer anropas funktionen 30 gånger. Problemet är då att det funktionen gör är att den skapar en array med storleken 104 (så många förnamn som finns registrerade) och sedan skapar ett slumptal och returnerar namn(slumptal).

Som ni förstår är inte detta någon smidig metod eftersom variabeln namn kommer att skapas och 104 namn kommer att sättas varje gång funktionen anropas (vilket i detta fallet är 30 ggr). Det smidigaste (som jag kommit på) är om man kunde returnera en array. Då kunde man anropa funktionen med ett argument för hur många namn man ville ha och då kunde funktionen slumpa fram 30 namn och variabeln namn behöver då bara sättas en gång.

Någon som vet om/hur man kan returnera en array, eller någon som har en bättre lösning på mitt problem?

/Rickard


Svara

Sv: Returnera array?

Postades av 2002-08-11 17:04:26 - Sven Åke Persson

Hej
Du behöver inte returner en array, du kan göra en sub
som laddar en Global eller i BasModul Public Array

Sedan kan du ju läsa denna Array varsomhelst i ditt prog

mvh
Sven


Svara

Sv: Returnera array?

Postades av 2002-08-12 07:47:58 - Peter Holm

skapa en klass person. Instansiera klassen (ett objekt för varje person).
Lägg alla objekt i en collection (dragpåse) och plocka dom sedan därur.
Se till att ha en interfacemetod som heter namn eller något som ger dig
åtkomst till det inkapslade namnet på personen.

Objektorientering löser dina problem.

/[peter.h]


Svara

Sv: Returnera array?

Postades av 2002-08-12 08:54:02 - Andreas Hillqvist

Har skrivit lite kod som kanske kan ge dig några ideér:
<code>
Option Explicit

Private mFullNames() As String
Private mFirstNames() As String
Private mLastNames() As String

Public Sub InitializeNames()
Dim Count As Long
Dim Index As Long
Dim SubIndex As Long
mFirstNames = Split("Andreas Bertil Carl David Erik Fredrik Gustav")
mLastNames = Split("Svensson Johansson Nilsson Davidsson Eriksson")

ReDim mFullNames((UBound(mFirstNames) + 1) * (UBound(mLastNames) + 1) - 1)
For Index = 0 To UBound(mFirstNames)
For SubIndex = 0 To UBound(mLastNames)
mFullNames(Count) = mFirstNames(Index) & " " & mLastNames(SubIndex)
Count = Count + 1
Next
Next
End Sub

Public Function GenerateNames(Optional Count As Long, Optional Unique As Boolean) As String()
Dim Index As Long
Dim SubIndex As Long

Dim Name As String
Dim Result() As String
Dim AllNames() As String
If Count > 0 Then
If Unique Then
If Count > (UBound(mFirstNames) + 1) * (UBound(mLastNames) + 1) Then
Err.Raise vbObjectError + 1, "GenerateNames", "Finns inte tillräckligt med namn för att skapa unika kombinationer!"
Else
Randomize
AllNames = mFullNames
ReDim Result(1 To Count)
For Index = 1 To Count
Do
SubIndex = UBound(mFullNames) * Rnd
Loop Until Len(AllNames(SubIndex))
Result(Index) = AllNames(SubIndex)
AllNames(SubIndex) = ""
Next
End If
Else
Randomize
ReDim Result(1 To Count)
For Index = 1 To Count
Result(Index) = mFullNames(UBound(mFullNames) * Rnd)
Next
End If
GenerateNames = Result
End If
End Function

Public Sub Test()
Dim Index As Long
Dim Names() As String
InitializeNames
Names = GenerateNames(30, True)
For Index = 1 To 30
Debug.Print Names(Index)
Next

End Sub
</code>


Svara

Sv: Returnera array?

Postades av 2002-08-12 19:19:07 - Rickard Nilsson

Tack så mycket för hjälpen!

Flera bra smarta lösningar!

/Rickard


Svara

Nyligen

  • 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
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 606
27 953
271 705
491
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