| |
|
|
- Seite 1 - |
|
Stefan Landsberg | Hallo,
irgendwie wurde mir der alte Thread hier [...] zu unübersichtlich, und da dachte ich mach einen neuen Thread auf. (Wenn dass nicht gewünscht ist bitte ich einen Admin einen von beiden zu löschen).
Worum gehts: Ich bin dabei mein erstes Programm zu programmieren. es soll eine liste von ips anpingen und dann anzeigen ob sie erreichbar sind oder eben nicht.
mein Programm ist (bis auf das Design) schon fast fertig. Zur Zeit sieht der Code so aus: [...]
und hier die Frage:
ist es eine gute Idee als Ausgabefeld eine MultiEditBox zu nehmen oder gibt es dafür besseres? ich hab nichts gefunden! mein problem ist, dass das nicht als absatz angezeigt wird sondern nur als schwarzer Kasten. in dem Ausgabefeld soll aber ein Liste ausgegeben wobei jede IP eine eigene Zeile hat. |
|
|
| |
|
|
|
| |
|
- Seite 2 - |
|
Stefan Landsberg | also:
ich hab jetz das exit%=1 rausgenommen und jetz funktioniert die schleife so wie ich es haben will. (komisch. ich hatte das exit%=1 vorher auch schonmal rausgenommen, und da kamn lauter fehler. naja aber jetz gehts)
die messages hab ich so gut ich das konnte in den quelltext eingebunden. aber jetz sieht die ausgabe irgendwie total komisch aus.
ScrennShot der Ausgabebox im Anhang.
aktueller code: [...] |
|
|
| |
|
|
|
| Das werden Steuerzeichen wie z.B. #13 und #13 sein, die kannst Du "vorher" per z.B. translate $(s$,chr$(10),"") herauslöschen. Vielleicht sind auch noch Tabs drin, probiere also auch Zeichen #9 zu löschen. Es sollte aber vielleicht hier schon reichen jede Zeile vor dem Hinzufügen in das untere Feld zu trim$ en.
Schaue Dir auch setDialogFont und setze mal "MS Sans Serif",10,0,0,0,0 - sieht "Windowsmässiger" aus. (nod) |
|
|
| |
|
|
|
Stefan Landsberg | ok die schriftart hab ich geändert.
aber translate$ und trim$ bewirken gar nichts.
aktueller Code: [...] |
|
|
| |
|
|
|
| ...weil falsch angewandt...
Translate$ ist eine Funktion (Trim auch), d.h. sie gibt einen Wert zurück. Diesen Wert weist Du jedoch nirgends zu, besser: KompilierenMarkierenSeparieren Das @-Zeichen ist schon seit vielen vielen Profan²-Versionen aus Sicht des Profan² sinnfrei, XProfan benötigt es schon garnicht... Du brauchst also kein @ schreiben, das wird eh unbeachtet weggegessen...
Wenn Du aber schon ein @-Zeichen setzt, dann bitte vor alle Funktionen und nicht nur mal hier und da. |
|
|
| |
|
|
|
Stefan Landsberg | oh sorry, ich hab zu oberflächlich gelesen. deshalb ist mir garnicht aufgefallen, dass translate$ eine funktion ist.
jetz wos richtig angewandt wird werden aber auch meine absätze gelöscht, und es ist wieder unübersichtlich. und irgendwie hat sich auch hier noch ein kleiner fehler eingeschlichen (siehe screenshot)
Das @ hab ich immer dazugeschrieben weil Roland es in der Hilfe zu Profan 6.6 so sehr empfielt. Aber da Funktionen in XprofEd ja sowieso mit Dunkelblau markiert werden kann ich es auch weglassen. (hab ich dann auch gleich mal gemacht )
Eine fast Offtopic Frage: Was ist eigenlicht bei den Shareware Versionen Profan7 XProfan8 und XProfan9 eingeschränkt. Weil bei denen ist ja die Stringlänge nicht auf 255 begrenzt und ich könnte meine ursprüngliche lösung verwenden.
Edit: ups ich hab meinen aktellen code vergessen. hier ist er: [...] |
|
|
| |
|
|
|
| Hrm, zur Offtopicfrage: Warum entwickelst Du nicht mit dem kostenlosen XProfan10-Free? [...]
Du könntest ewig damit herumprogrammieren - mit allen Features die das XProfan10-Free zu bieten hat.
Und wenn Du dann irgendwann "fertig" bist dann wird sich bestimmt jemand finden der Dir daraus eine Exe macht - wenn Du bis dahin nicht sowieso schon XProfan 11 hast.
BTT
Entweder bekommst Du heraus wodurch sich die Fragmente bilden, oder Du belässt diese zunächst und entledigst Dich dieser etwas später - z.B. dann wenn die Zeile die Du hinzufügen möchtest getrimmt betrachtet kleiner als X Zeichen besitzt.
Da das Translate funktioniert kannst Du jetzt die Zeile, welche ASCII 10 entfernt, wieder auskommentieren und schauen wie das Ergebnis nun aussieht. |
|
|
| |
|
|
|
Stefan Landsberg | vielen Danke für die Super hilfe bis jetzt. ich fahre dann jetz erstmal in urlaub (campen) und nachher guck ich mir mal xprofan 10 free an. |
|
|
| |
|
|
|
Stefan Landsberg | so nachdem ich aus dem Urlaub zurück bin, hab ich erstmal mein Windows neu aufgesetzt, oder bin besser gesagt noch voll dabei.
Wenn ich damit fertig bin, was hoffentlich morgen oder übermorgen der Fall sein wird, kann ich mich dann wieder dem (XProfan) lernen widmen. Da wir hier in NRW aber bereits Morgen wieder zur Schule müssen, habe ich leider nicht soviel Zeit euch mit Fragen zu überschütten.
Ich hoffe das wird niemandem fehlen |
|
|
| |
|
|
|
Stefan Landsberg | so. das programm ist schon fast fertig. ich habe nur noch ein problem: wenn ich mehrere sehr unterschiedlich lange strings eingebe sind die ergebnisse nicht so schön angeordnet sondern so wie auf dem bild im anhang. wie krieg ichs hin dass es da nur zwei ordentliche spalten gibt?
ich hab versucht eine prozedur zu schreiben die zu kurze strings auf 12 zeichen verlängert. aber das hat nicht richtig geklappt: KompilierenMarkierenSeparierenString verlängern
Proc extend
parameters var$, length%
while len(var$)<length%
var$=var$+" "
endwhile
endproc
Testprogramm
declare text$,text1$,text2$,textg$,edit%
windowstyle 27
windowtitle "test"
window 50,50,600,600
edit%=create("multiedit",%hWnd,"",60,60,500,200)
text$="hallo"
text1$=text$+" - welt
"
extend text$,12
text2$=text$+" - welt"
textg$=text1$+text2$
settext edit%,textg$
waitkey
so sieht das programm zur zeit aus: KompilierenMarkierenSeparierenDeclare-Teil:
declare ping%, btn%, ipinput%, ipoutput%, exit%, ipline%, ip$, curline%
declare outgesamt$, outtxt$, statusbar%, text1%, text2%
Proc-Teil:
Proc Ping
declare pingdatei1$, pingdatei2$, pingstring$, ping$
Parameters ip$
let pingdatei1$="PINGTEST.TXT"
let pingdatei2$="PING.BAT"
let pingstring$="PING.EXE -n 1",ip$,">",pingdatei1$
Assign #6,pingdatei2$
Rewrite #6
Print #6,pingstring$
Close #6
WinExecwait(pingdatei2$,0)
Assign #5,pingdatei2$
Erase #5
ASSIGN #3,pingdatei1$
RESET #3
Ping%=0
WHILENOT EOF(#3)
input #3,ping$
ping$=mid$(ping$,1,11)
case equ$(ping$,"Antwort von"):Ping%=1
WEND
CLOSE #3
Assign #1,pingdatei1$
Erase #1
EndProc
Def-Teil:
DEF GetSysColor(1) !"User32","GetSysColor"
Fenster erstellen:
WindowStyle 571
WindowTitle "IP Checker"
Window 50,50 - 600,600
CLS GetSysColor(15)
Usefont "MS Sans Serif",15,0,0,0,0
setdialogfont 1
Fensterelemente gestalten
ipinput%=Create("MultiEdit",%HWnd,"",10,50,570,-200)
btn%=Create("Button",%HWnd,"Überprüfen",250,260,100,30)
ipoutput%=Create("MultiEdit",%HWnd,"",10,320,570,-200)
statusbar%=create("statuswindow",%hWnd,"Bitte geben sie die IPs ein die überprüft werden sollen.")
Infotexte eingeben
text1%=create("text",%hWnd,"Geben sie hier bitte die IPs durch Absätze getrennt ein:",50,25,400,20)
text2%=create("text",%hWnd,"Hier sind die Ergebnisse:",50,295,200,20)
WhileNot exit%
waitinput
case %key=2 : break
If clicked(btn%)
clear outgesamt$
settext ipoutput%,""
ipline%=GetLineCount(ipinput%)
curline%=0
settext statusbar%,"Verbleibend: "+str$(ipline%)
While ipline%
ip$=GetLine$(ipinput%,curline%)
ping ip$
If ping%=1
outtxt$=ip$+" - Erreichbar
"
else
outtxt$=ip$+" - Nicht Erreichbar
"
EndIf
outgesamt$=outgesamt$+outtxt$
settext ipoutput%,outgesamt$
inc curline%
dec ipline%
settext statusbar%,"Verbleibend: "+str$(ipline%)
EndWhile
settext statusbar%,"Vorgang abgeschlossen"
settext ipinput%,"Vorgang abgeschlossen"
EndIf
EndWhile
|
|
|
| |
|
|
|
Manfred Barei | Hallo Stefan,
Du kannst dir hier die Version 7.6a von Profan herunterladen, ist jetzt Freeware. [...]
Gruß Manfred |
|
|
| Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 16.08.2008 ▲ |
|
|
|
|
| Einen String auf eine Minimallänge bringen ohne Schleife geht per len und mkstr$ KompilierenMarkierenSeparieren Tip 1: Vermeide interpretierte Schleifen wenn möglich unter Zuhilfenahme nativer Funktionen für mehr Performance. |
|
|
| |
|
|
| |
|
- Seite 3 - |
|
|
Thomas Freier | oder ipoutput% als Listbox mit Tab oder als Listbox (Listview). Die Beispiele hier suchen oder bei Gerhard Putschalka . Lauffähig ab Profan 6.6 . |
|
|
| |
|
|