Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4599 Wohnort: ~/
|
Verfasst am: 22.02.2016, 17:09 Titel: |
|
|
Ich bin mit Python nie so wirklich warm geworden, aber es ist recht einsteigerfreundlich und macht einen Erstkontakt mit Objektorientierung ziemlich angenehm. Für die Arbeit mit Dateien und Stringmanipulationen sind Skriptsprachen (wie Python) hervorragend geeignet; ich würde mal behaupten, das ist ihre Stärke schlechthin. Einlernen muss man sich natürlich trotzdem.
Das Einlesen von Datensätzen wird aber in allen Sprachen mehr oder weniger ähnlich ablaufen; wenn alle Datensätze gleich lang sind, kannst du direkt an die gewünschte Stelle springen, aber das wird bei dir wohl nicht der Fall sein. Dann bleibt nur, so viel von der Datei einzulesen, bis du bei der gewünschten Stelle angekommen bist (in grindstones Beispiel etwa dadurch erkennbar, dass die Datenzeile "DatensatzX" heißt).
Ansonsten noch ein anderer Vorschlag: Öffnen der zu lesenden Datei FOR INPUT z. B. mit Dateinummer 1, gleichzeitig Öffnen einer zweiten (neuen) Datei FOR OUTPUT mit anderer Dateinummer (z. B. 2). Dann kannst du gleichzeitig aus der einen auslesen und die Ergebnisse in die neue schreiben. Am Ende dann beide schließen, die alte zu lesende Datei löschen und die neuerstellte Datei umbenennen.
Zitat: | So eine vernünftige graphische Oberfläche wäre natürlich schön. |
Das ist mit QBasic oder FreeBASIC allerdings deutlich leichter zu bewerkstelligen als mit einer Scriptsprache (außer du verwendest eine externe GUI; dann ist es wieder egal). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2508 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 22.02.2016, 22:12 Titel: |
|
|
Inzwischen auch schon einfache Sachen mit Python geschrieben (schuld daran ist ein Raspberry Pi, den sich mein Vater noch in seinen alten Tagen als neues Hobby zugelegt hat); kommt auch in der professionellen IT-Welt mittlerweilen schon an recht vielen Orten zum Einsatz, wie so mancher iX-Artikel zeigt.
Von mir ansonsten ein Beispiel, wenn auch noch nicht 100% komplett:
http://beilagen.dreael.ch/Python/Mandelbrot_2.py
Noch recht leistungsfähig ist die tkinter-GUI-Bibliothek, wo ein passender Fensterlayout schnell zusammengebaut ist, und zwar so, dass sich alles anpasst (funktioniert wie eine HTML-Tabelle, die sich auch in den Grössen anpasst).
Ansonsten arbeitet die ganze Sprache dynamisch typisiert ähnlich PHP mit dem Nachteil, dass viele Fehler erst zur Laufzeit erkennbar werden und ferner keine IDE mit Code Completion möglich ist (FreeBasic wäre dagegen bestens geeignet, z.B. auf xtext-Basis ein Eclipse-Modul zu bauen, um dort ähnlich Java auch fortlaufende Fehleranzeige, Code Completion usw. zu ermöglichen). => Aus diesem Grund würde ich also Python eher für kleinere Projekte/Aufgaben einsetzen, bei denen die Codemenge gut überschaubar bleibt.
Recht leistungsfähig sind dagegen die Listenoperationen, d.h. funktionale Programmierelemente sind bereits vorhanden, bei denen sich dann beispielsweise die Laufzeitumgebung darum kümmert, mit einigen Threads solche Operationen zu parallelisieren.
Gewöhnungsbedürftig an der Syntax: Es gibt keinerlei END-Xxx, sondern die Einrückungen sind Teil der Syntax. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 23.02.2016, 00:16 Titel: |
|
|
Wo ist mein Text hin den ich gerade geschrieben hatte ?????????? _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
|
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 23.02.2016, 00:39 Titel: |
|
|
Also nachmal!
Heureka! : Es hat nun hingehauen! Habe mir noch eine Stunde suchen gegönnt und dann endlich alle Variablen gefunden und null- bzw. auf Anfang gestellt.
@ grindstone: Danke für Deinen Code! Den probier ich trotzdem mal. Beim auslesen will ich nach jedem ausgelesenen Datensatz den Programmdurchlauf anschließen und dann das Ergebnis ausgeben.
Oder kann man die DS geordnet in dem HS ablegen und danach die Verarbeitung vornehmen? Das ist mir noch unklar ob und wie das gehen könnte.
Offen blieben noch:
- Wie kann ich in der DosBox eine hängendes Programm stoppen ohne DB zu verlassen?
- Bei mir stellt sich DB auf 3000 Cycles ein. Wo und wie kann ich das denn erhöhen? Bei mir dauert zZ eine Rechendurchgang asn die 300 Sekunden statt 2! das ist mir ein wenig zu lange!(Ich habe DV 0.74).
- Wenn ich Code ausprobiere, dann ändere ich den am BS und starte gleich über F5. Aber nicht immer scheinen solche Änderungen angenommen zu werden. Gibts da Regeln? Heute ließ ich QB mehrfach verändert +2 oder 4 Zeilen laufen. Danach war der eingefügte Code jedesmal wieder weg. Stwt: QB das unbekannte Wesen!
@alle: Danke für Eure Mühe und Eure Hinweise zu python. Mich hat da fasziniert wie der schon am Prompt so irrsinnig umfangreiche Langzahlen ausgibt.
Ich glaube ich muss mich langsam verabschieden von QB. Nur ist mir noch nicht klar wohin. Letzthin hatte ich C++ Code vor mir. <Habe noch nicht einmal geschnallt an welcher Stelle das RK4-Verfahren aufgerufen wurde. Habs noch nicht einmal hingekriegt in einem klitzekleinen C++ prog das Zahlen ausgibt nach jeder zahl ein zeichen auszugeben. In QB ja ein Klacks!
Zusatzfrage an alle:
Kann ich in QB bestimmen wann und wie gespeichert wird. ich meine zB erst nach Abarbeitung aller Aufträge. Oder erst in den HS dann in die Platte.
grüsse
Euer Nils _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
|
Elor
Anmeldungsdatum: 12.07.2013 Beiträge: 205 Wohnort: Konstanz
|
Verfasst am: 23.02.2016, 11:21 Titel: |
|
|
Zitat: |
- Wie kann ich in der DosBox eine hängendes Programm stoppen ohne DB zu verlassen?
|
Normalerweise mit der Tasten-Kombi "Strg+Rollen".
Zitat: |
- Bei mir stellt sich DB auf 3000 Cycles ein. Wo und wie kann ich das denn erhöhen? Bei mir dauert zZ eine Rechendurchgang asn die 300 Sekunden statt 2! das ist mir ein wenig zu lange!(Ich habe DV 0.74).
|
Daran hab ich noch nie was verändert, müsste ich selber erst mal nachschauen.
Zitat: |
- Wenn ich Code ausprobiere, dann ändere ich den am BS und starte gleich über F5. Aber nicht immer scheinen solche Änderungen angenommen zu werden. Gibts da Regeln? Heute ließ ich QB mehrfach verändert +2 oder 4 Zeilen laufen. Danach war der eingefügte Code jedesmal wieder weg. Stwt: QB das unbekannte Wesen!
|
Eigentlich steht jede Änderung, die innerhalb der DosBox vor genommen wird, sofort zur Verfügung, Änderungen die von außen vor genommen werden, also z.B. über den Dateimanager, werden erst nach einem neu Start übernommen. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2508 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 23.02.2016, 20:38 Titel: |
|
|
Nils hat Folgendes geschrieben: | Ich glaube ich muss mich langsam verabschieden von QB. |
Gut so. Bedenke, das heutzutage MS-DOS nur noch für ganz spezielle Nischen Sinn macht, z.B. ein Bootdiskettentool mit mein Festplattenlöscher, ebenso ein Mess-PC mit Parallelport, wobei sich für letzteres auch immer mehr ein Raspberry Pi eignet (dort ist Python sehr verbreitet!).
Nils hat Folgendes geschrieben: | Nur ist mir noch nicht klar wohin. Letzthin hatte ich C++ Code vor mir. <Habe noch nicht einmal geschnallt an welcher Stelle das RK4-Verfahren aufgerufen wurde. Habs noch nicht einmal hingekriegt in einem klitzekleinen C++ prog das Zahlen ausgibt nach jeder zahl ein zeichen auszugeben. In QB ja ein Klacks! |
Sonst in meiner Download-Ecke hat es auch C++-Beispiele, damals noch mit dem DJGPP entwickelte.
Ratschlag hier im Forum: Am besten direkt auf FreeBasic umsteigen. Vorteile:
- generiert direkte native Windows-.EXE-Dateien.
- lineare Speicheradressierung und damit praktisch keine Begrenzungen für grosse Arrays, in der 64-Bit-Version im Prinzip sogar so gross wie der Hauptspeicher eines heutzutage üppig ausgestatteten Servers möglich.
- Auf der einen Seite geringer Lernaufwand, weil weitgehend QB-kompatibel, auf der anderen Seite aber Dinge wie Threads und volle Objektorientierung möglich. Bei Deinem Projekt könntest Du so einerseits bestehende Codeteile praktisch so wie bisher belassen, umgekehrt ganz neue Features beispielsweise objektorientiert als Klasse implementieren.
Ansonsten auf www.freebasic-portal.de viel Dokumentation und Codebeispiele. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.02.2016, 00:05 Titel: |
|
|
dreael hat Folgendes geschrieben: | Nils hat Folgendes geschrieben: | Ich glaube ich muss mich langsam verabschieden von QB. |
Gut so. Bedenke, das heutzutage MS-DOS nur noch für ganz spezielle Nischen Sinn macht, z.B. ein Bootdiskettentool mit mein Festplattenlöscher, ebenso ein Mess-PC mit Parallelport, wobei sich für letzteres auch immer mehr ein Raspberry Pi eignet (dort ist Python sehr verbreitet!). |
Und selbst dafür wird es dank EFI immer ungeeigneter. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Elor
Anmeldungsdatum: 12.07.2013 Beiträge: 205 Wohnort: Konstanz
|
|
Nach oben |
|
|
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 04.03.2016, 19:29 Titel: |
|
|
@ Elor!
Danke für Deinen Link.
Wegen Abbruch mit DB: Bei meinem LT gibt's keine Rollentaste die ich zusammen mit Strg benutzen könnte. Das Backslash hab' ich auch noch nicht gefunden.
grüsse Nils _________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
|
Elor
Anmeldungsdatum: 12.07.2013 Beiträge: 205 Wohnort: Konstanz
|
Verfasst am: 04.03.2016, 20:36 Titel: |
|
|
Vielleicht ist die Taste nur anders beschriftet? Beispielsweise kombiniert in etwa so "num scroll". Ich hab mir mal meine Tastaturen angeschaut, Deutsche und Amerikanische, da war diese Taste enthalten. Was die "back-slash"- Taste angeht, ausgehend von der Deutschen Tastatur in der Dosbox ohne "Keyb de" ist es die Routetaste. |
|
Nach oben |
|
|
Nils
Anmeldungsdatum: 24.03.2006 Beiträge: 191
|
Verfasst am: 11.03.2016, 13:44 Titel: |
|
|
Hi Elor!
Iregndwie ist das bei mir ganz anders mit DosBox! Vlt. haben wir unterschiedliche Versionen?
Also zur Cyclengeschwindigkeit:
Die stelle ich ein bevor ich das neue LW mounte. Und zwar über Strg+F12. Da kann man von Cyclus zu Cyclus springen. Ab 20000 muss man einen Eintrag in der pif machen. Nämlich heißt es bei mir: core=dynamic. Aber ich kann da keinen Eintrag machen. da fehlt mir irgendwie die Speichererlaubnis.
Abbruch habe ich nun auch rausgefunden: Über Strg+F7 erscheint im Fensterrahmen dort im Namen "Nach X Cyclen". X ist die Anzahl der Tastendrücke auf F7. Bevor ich überhaupt wußte wie mir geschah, da war das Programm auch schon abgebrochen. Zusatz: da auf dem rechner die Fiunktionstatsen noch mit Zusatzelementen belastet sind(zB Lautstärke, Helligkeit etc) muß ich da gleichzeitig noch die Fn-Taste gedrückt halten.
grüsse Nils
_________________ Kontrolliert die Politik! Laßt nicht die Politik Euch kontrollieren! Das sind Eure Angestellten! Lasst Sie das spüren!!! |
|
Nach oben |
|
|
Elor
Anmeldungsdatum: 12.07.2013 Beiträge: 205 Wohnort: Konstanz
|
Verfasst am: 12.03.2016, 12:03 Titel: |
|
|
@Version:
Nein, ich hab auch die v0.74! Soweit ich weiß, wurde schon seit längerem keine neue Version mehr raus gegeben.
@Geschwindigkeit:
Wie ich schon erwähnt hab, hab ich mit der CPU-Geschwindigkeit noch nie was gemacht! Das mit Strg+F12 kommt mir aber (jetzt wo es da steht) irgendwie bekannt vor. Ich verwende die Dosbox aber nur wenn jemand ein QBasic Programm dort ausführt, um den Fehler rekonstruieren zu können.
Ich selber verwende den DOS Emulator, den kann man auch über das "Software Center/Packe Verwaltung" installieren, da hat man die Geschwindigkeitsprobleme gar nicht (da wird Freedos installiert).
@Tasten:
Da kann man mal sehen wie unterschiedlich sich die System verhalten, selbst wenn die gleiche Software verwendet wird. Die "Fn" Taste hab ich auch, wenn man die aber mit verwendet, wird in der Regel immer die entsprechende Funktion ausgeführt (zumindest bei mir). |
|
Nach oben |
|
|
|