Deutsch
Forum

Wo ist mein fehler ?

 

diimool25

KompilierenMarkierenSeparieren
pfad$ = "J:\1"+".txt"

if fileexists(pfad$)

    clearlist
    assign #1, Pfad$
    reset #1

    WhileNot @Eof(#1)

        i% = i%+1
        Input #1,Zeile$
        SetText RadionButton%[i%], Zeile$

    EndWhile

    close #1

wieso fängt er im programm an den 1. aus der txtdatei beim 6. button zu machen ?
 
07.03.2014  
 




Jörg
Sellmeyer
Ein Array ist nullbasierend. Du setzt aber den Index i% gleich auf 1. Darum wird das zweite Arrayfeld abgefragt.
KompilierenMarkierenSeparieren
Declare Arr%[9]
Cls

WhileLoop 0,9

    Arr%[&Loop] = &Loop

Wend

WhileLoop 0,9

    Print Arr%[&Loop]

Wend

WaitInput

Nur mal aus Neugierde: Warum schreibst du
KompilierenMarkierenSeparieren
pfad$ = "J:\1"+".txt"
mit dem + und nicht
KompilierenMarkierenSeparieren
pfad$ = "J:\1.txt"
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
07.03.2014  
 




diimool25
das hatte ich gemacht da das mit der 1 ja nur ne test datei ist und ich hatte das woanders schonmal so gemacht und denn hatte ich das so übernommen aber danke
 
07.03.2014  
 




diimool25
undwas soll ich jetzt genau wegnehmen ?
 
07.03.2014  
 




diimool25
Ahh ich habe meinen fehler schon gefunden ich hatte i% schon davor genutzt und da war i% schon auf 6 desswegen hat er ei 6 angefangen
 
07.03.2014  
 




diimool25
wieso kann ich keine buttons bei dem countdown nutzen ?
proc count2

Set("Decimals",1)
var time%=&GetTickCount
var text&=Create("Text",%hwnd,"",30,30,120,20)

while &GetTickCount-time%<60000
Case &GetTickCount-time%<60000 : Settext text&,Str$((60000-(&GetTickCount-time%))/1000) + " Sekunden"
Endwhile

Endproc
 
08.03.2014  
 




H.Brill
Ich würde mal bei Rechenoperationen Klammern benutzen.
KompilierenMarkierenSeparieren
Set("Decimals",1)
Cls
var time%=&GetTickCount
var text&=Create("Text",%hwnd,"",30,30,120,20)

while (&GetTickCount-time%) < 60000

    Case (&GetTickCount-time%) < 60000 : Settext text&,Str$((60000-(&GetTickCount-time%))/1000) + " Sekunden"

Endwhile


Ist erstens, besser zu lesen und zweitens kommt XProfan
auch dann nicht durcheinander.

Im obigen Code sehe ich zwar keine Erzeugung von Buttons, aber ich nehme
an, daß du das in deinem Gesamtcode machst.

Wenn du den obige Proc count2 ausführst, wird in diesen 60 Sekunden
auch nichts mehr gehen, weil die While-Schleife damit beschäftig ist,
mit SetText.... einen Text zu setzen. Hier am besten SetTimer benutzen
und den nicht allzu klein machen, sodaß WaitInput in deiner Hauptschleife
auch noch reagieren kann.

Der bessere Weg ist, MultiProzessing zu verwenden. Dort ist in der
Hilfe z.B. beschrieben, wie man die Zeit in der Titelleiste anzeigt.

Das könnte z.B. so aussehen :
KompilierenMarkierenSeparieren
Declare start&, stop&, liste&, ende&, ende2&, pid&
WindowStyle 16' System-Menü ausblenden
WindowTitle "Haupt - Fenster"
Window 600,  500
start& = @Create("Button", %HWnd, "Start", 10, 10, 80, 25)
stop&  = @Create("Button", %HWnd, "Stop",  100,10, 80, 25)
ende&  = @Create("Button", %HWnd, "Ende",  190,10, 80, 25)
liste& = @Create("Listbox", %HWnd, 0, 10, 50, 400, 200)
ende2& = 0
EnableWindow stop&, 0

WhileNot ende2&

    WaitInput

    If @Clicked(start&)

        ClearList liste&
        pid& = pExec("|Count2", %HWnd, liste&)

        If pid& > 0

            EnableWindow stop&, 1
            EnableWindow start&, 0

        EndIf

    ElseIf @Clicked(stop&)

        If pid& > 0

            Process("Kill", pid&, 0)
            EnableWindow start&, 1
            EnableWindow stop&, 0

        EndIf

    ElseIf @Clicked(ende&)

        If pid& > 0

            Process("Kill", pid&, 0)

        EndIf

        ende2& = 1

    EndIf

EndWhile

Proc Count2

    Parameters whandle&, listb&
    Set("Decimals",1)
    var ende1% = 0
    var time%=&GetTickCount
    var text&=Create("Text",%hwnd,"",30,30,120,20)

    While ((&GetTickCount-time%) < 60000) OR (ende1% = 1)

        Case getText$(whandle&) = "" : ende1% = 1

        If (&GetTickCount-time%) < 60000

            AddString(listb&, Str$((60000-(&GetTickCount-time%))/1000) + " Sekunden")
            SendMessage(listb&, $0186, @GetCount(listb&) -1, 0)

        EndIf

    Endwhile

EndProc

End
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
08.03.2014  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.371 Betrachtungen

Unbenanntvor 0 min.
Jochen Roxlau14.04.2015
Heinz Bernhard29.11.2014
Georg Teles04.09.2014
iF09.07.2014
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie