programma vraagje

Status
Niet open voor verdere reacties.

TDPmurdock

Gebruiker
Lid geworden
6 feb 2008
Berichten
35
hey,

goeiedag, ik ben hier nieuw, kben iets aant maken, ma ben nog niet zo thuis in VB, dus dacht laat ik eens wat hulp zoeken. Misschien dat jullie mij kunnen helpen, of toch minstens op weg kunnen zetten...

Ik wil een puntentelling van een scenario paintballgame automatiseren.

ik heb dus Visual studio 2008 geïnstalleerd, nu valt me dat qua ingewikkeldheid een beetje tegen om zo van niks te beginnen, dus zou er iemand zo vriendelijk willen zijn mij een stuk op weg te helpen met de basis van mijn programma?

Een korte schets:

Er zijn op het speelveld 4 speelpunten, die van Team A of Team B kunnen zijn. Op elke speelpunt komt een bakje met een keuzeschakelaar. links A, rechts B. als men het speelpunt veroverd, zet men de switch in zijn richting. Deze 8 (4 speelpunten, 2 schakelaarposities) signalen ga ik laten binnenkomen in de pc via volgende interface:

DLP-IO8

ik voeg een word bestandje bij met een tekening, en de uitleg over wat het programma juist zou moeten doen.

Alvast superhard bedankt!
 

Bijlagen

Staat je vraag nog open of ben je al geholpen?
 
Bij deze in ieder geval een oplossing. Volgens mij niet de mooiste maar wel lekker duidelijk qua opzet... :) Naast het programma heb ik ook de broncode erbij gedaan.

Voor mij was het even kijken hoe VS2005 werkt, dus als iemand verbeteringen heeft dan graag! :thumb:
 

Bijlagen

zeer compleet, heb zelf al iets kunnen aanpassen :) kzou nog graag een "lampje" , een cirkeltje ofzo bij elke base hebben, die rood wordt als het van team A is, en blauw als het van team B is, kan iemand me daarbij helpen?

Ook zou ik veiligheidshalve elke minuut, of 2 minuten een backup van de geregistreerde gegevens willen maken (minuut en punten per base per team, totaalscores en tijd) dat mag naar excel zijn, of een txt bestand ofzo...)
 
:) ja, ja... Als ik nog meer werk eraan moet besteden dan kunnen we haast wel over een opdracht gaan praten... :p

Dat lampje is op zich niet zo moeilijk: gewoon twee pictureboxen met een 'uit' en een 'aan' lampje op dezelfde plek, die je afwisselend zichtbaar maakt. Beter nog is de plaatjes in een resourcefile te zetten en 'dynamisch' in 1 picturebox te laden. (hoe kun je vast vinden op het internet).

De export is helemaal afhankelijk van wat je wilt. Je zou betrekkelijk eenvoudig de gegevens kunnen exporteren naar excel. Bijvoorbeeld bij: de start, een pauze, en tussendoor bijvoorbeeld om de minuut.

Succes! :D
 
ok ben al een heel stuk verder gekomen door zelfstudie... 'controlelampjes' zijn in orde,

nu die export functie...

met volgende functie ben ik er wel in geslaagd om met een druk op de knop een stukje tekst weg te schrijven naar een csv bestand, maar verder dan dat stukje tekst kom ik niet.

Private Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click
MessageBox.Show("Export functionaliteit nog implementeren!")

My.Computer.FileSystem.WriteAllText("C:\Paintball\export.csv", "dit is de export tekst", True)

End Sub

hoe kan ik nu een timerwaarde, of andere waarde wegschrijven?

alvast bedankt voor de tips
 
Een timerwaarde is een getal, en die moet je vertalen in een string/tekst om het weg te schrijven in je tekstbestand.

Dat kan globaal met de opdracht CType, waarmee je van type kunt wisselen:
Code:
myString  = CType(myNumber, String)

Handiger is het in jouw geval denk ik om mijn functie ElapsedTime te gebruiken die al een string teruggeeft, en dus al van het goede type is...

Daarna gewoon dezelfde opdracht gebruiken die je nu ook gebruikt: WriteAllText
 
hey, er heeft mij iemand een mailtje gestuurd via het forum, maar kan de gebruikersnaam niet terugvinden, in ieder geval: bedankt, maar je rar bestand werkt niet, er zit een fout in...
 
kheb het allemaal werkend gekregen, exporteert nu alles , elke seconde, of als ik op de knop druk...

merci!
 
Mag ik het eindresultaat eens zien? Ben benieuwd wat je gemaakt hebt en misschien kan ik je nog wat tips geven?
 
hier istie dan...

de autosave en export functie schrijft z'n bestandjes weg in de Mydocuments folder...

link
 
Laatst bewerkt:
Hoi, begint erop te lijken! :D

Ik zou de export routine iets anders schrijven, namelijk door tekst elke keer aan het bestand toe te voegen (Append). Verder zou ik ook een Try..Catch..End Try toevoegen, dan weet je zeker dat je export lukt. In jouw geval kreeg je eerst een melding dat het gelukt was, en daarna moest de code nog starten... ;)

Code:
    Private Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click
        Try
            Const base1teamA As String = "Base 1" & vbTab & "Team A:" & vbTab
            Const base1teamB As String = "Base 1" & vbTab & "Team B:" & vbTab
            Const base2teamA As String = "Base 2" & vbTab & "Team A:" & vbTab
            Const base2teamB As String = "Base 2" & vbTab & "Team B:" & vbTab
            Const base3teamA As String = "Base 3" & vbTab & "Team A:" & vbTab
            Const base3teamB As String = "Base 3" & vbTab & "Team B:" & vbTab
            Const base4teamA As String = "Base 4" & vbTab & "Team A:" & vbTab
            Const base4teamB As String = "Base 4" & vbTab & "Team B:" & vbTab
            Const strp As String = vbTab & "-" & vbTab
            Const teamA As String = vbTab & "Team A:" & vbTab
            Const teamB As String = vbTab & "Team B:" & vbTab
            Const tottijd As String = vbTab & "seconds"
            Const ttltijd As String = "Total Playing Time:" & vbTab & vbTab

            Dim lnumsec1ae As String = Format(lNumSec1A, "0")
            Dim lnumsec1be As String = Format(lNumSec1B, "0")
            Dim lnumsec2ae As String = Format(lNumSec2A, "0")
            Dim lnumsec2be As String = Format(lNumSec2B, "0")
            Dim lnumsec3ae As String = Format(lNumSec3A, "0")
            Dim lnumsec3be As String = Format(lNumSec3B, "0")
            Dim lnumsec4ae As String = Format(lNumSec4A, "0")
            Dim lnumsec4be As String = Format(lNumSec4B, "0")
            Dim lnumsec5e As String = Format(lNumSec5, "0")

            Dim filePath As String = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "export.csv")
            Dim Text2Write As String

            Text2Write = ttltijd & lnumsec5e & tottijd & vbCrLf & vbCrLf & _
                         teamA & lblPtsTeamA.Text & vbCrLf & _
                         teamB & lblPtsTeamB.Text & vbCrLf & vbCrLf
            My.Computer.FileSystem.WriteAllText(filePath, Text2Write, False)

            Text2Write = base1teamA & lblPts1A.Text & strp & lnumsec1ae & tottijd & vbCrLf & _
                         base1teamB & lblPts1B.Text & strp & lnumsec1be & tottijd & vbCrLf & vbCrLf
            My.Computer.FileSystem.WriteAllText(filePath, Text2Write, True)

            Text2Write = base2teamA & lblPts2A.Text & strp & lnumsec2ae & tottijd & vbCrLf & _
                         base2teamB & lblPts2B.Text & strp & lnumsec2be & tottijd & vbCrLf & vbCrLf
            My.Computer.FileSystem.WriteAllText(filePath, Text2Write, True)

            Text2Write = base3teamA & lblPts3A.Text & strp & lnumsec3ae & tottijd & vbCrLf & _
                         base3teamB & lblPts3B.Text & strp & lnumsec3be & tottijd & vbCrLf & vbCrLf
            My.Computer.FileSystem.WriteAllText(filePath, Text2Write, True)

            Text2Write = base4teamA & lblPts4A.Text & strp & lnumsec4ae & tottijd & vbCrLf & _
                         base4teamB & lblPts4B.Text & strp & lnumsec4be & tottijd & vbCrLf & vbCrLf & vbCrLf
            My.Computer.FileSystem.WriteAllText(filePath, Text2Write, True)

            MessageBox.Show("Export succeeded!")

        Catch ex As Exception

            MessageBox.Show("Foutmelding: " & vbCrLf & ex.ToString, "Export failed!")
        End Try


    End Sub

Wat is er met de lichtknopjes gebeurt? Ik zie ze nergens..?
 
hey merci voor je input en verbeteringen, wel, als je het laat lopen zal je zien dat de achtergrondkleur van de knoppen veranderd , wanneer de bijbehorende timer actief is verkleurd de knop...
 
hoi, kheb nog een vraagje, ik heb wat extra dingetjes toegevoegd aan het programma, zoals een menubar met opties per team (om strafpunten toe te kennen bvb) maar nu wil ik aan de verschillende straffen X aantal strafpunten toekennen, dat lukt, als ik het vast programmeer, maar ik zou graag in m'n menu een knop "opties" hebben, die dan een venster opent, waar ik waardes kan ingeven voor de verschillende straffen, maar hoe maak ik zo'n venster? de rest lukt me wel....maar achter een venster (zoals in elk programma wel zit) heb ik me al suf gezocht:)
 
Wat bedoel je met 'hoe maak ik zo'n venster"? In principe gaat dat op net zo'n manier als het hoofdscherm. Je voegt een tweede form toe en die laat je openen vanuit de desbetreffende menuoptie. Bijvoorbeeld:
- Maak een formulier met bijvoorbeeld textboxen waarin de instellingen getoond en gewijzigd kunnen worden. Maak bijvoorbeeld een Dialog formulier.
- Maak globale variabelen die de waarden van je instellingen moet gaan onthouden
- Laadt die waarden uit een ini-bestand in die variabelen (als dat bestand tenminste bestaan, hetgeen de eerste keer dus niet zo is...)
- Maak menuopties: Extra > Instellingen
- Bij klik op menuoptie Instellingen open je het tweede venster; via frmOptions.ShowDialog()
- Bij openen formulier toon je de variabelen in een textveld o.i.d.
- Na wijzigen waarden en klikken op OK knop, sla je alle velden op in de variabelen en in het ini-bestand
- Tenslotte sluit je het formulier

Lukt het zo denk je? :thumb: Succes!
 
ok merci :) ben weeral wat verder gekomen,

nu zou het handig zijn om dat met een ding te doen zoals ik op de bijgevoegde printscreen aanwijs met de pijl kan je dat makkelijk invoegen , of hoe noemt dat? :) kan er geen naam voor bedenken...



EDIT: khebbet al gevonden, kmoest een beetje beter zoeken, sorry kan weer verder :)
 

Bijlagen

  • optiesprntscrn.jpg
    optiesprntscrn.jpg
    48,3 KB · Weergaven: 60
Laatst bewerkt:
hoi, ik ben ondertussen een pak verder met m'n programma, ik zou nu graag een aantal statistieken kunnen bekijken in een apart venster, dat lukt me, maar dat venster zou op de achtergrond open moeten kunnen blijven staan, kan dat?
 
Waarom moet dat venster op de achtergrond open blijven staan? En bedoel je dan zichtbaar op de achtergrond of mag het ook verborgen zijn?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan