Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Warum reagiert mein Programm auf einem anderen PC anders?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Schnüspelpold



Anmeldungsdatum: 08.06.2018
Beiträge: 4

BeitragVerfasst am: 08.06.2018, 16:40    Titel: Warum reagiert mein Programm auf einem anderen PC anders? Antworten mit Zitat

Hallo,
ich habe vor gut 25 Jahren mit der Basic-Programmierung aufgehört, weil der Zeitaufwand mit meiner eigentlichen Aufgabe in der Firma nicht mehr vereinbar war.
Nun habe ich mit FreeBasic mal wieder ein banales kleines Programm geschrieben, das auf meinem PC auch genau das macht, was es soll.
Es ändert Werte innerhalb von zwei simplen Textdateien.
Ich starte es, indem ich eine der beiden Daten im Windows-Explorer auf die Exe-Datei ziehe. Das Programm erkennt dann auch die zweite zu bearbeitende Datei.
Auf dem Firmen-PC läuft das im Prinzip auch, aber es wird nur eine der beiden Dateien korrekt bearbeitet. Die zweite Datei hat hinterher zwar die richtige Anzahl von Zeilen, aber aus allen Zeilen sind die meisten Werte verschwunden, auch welche, die nicht geändert werden sollten.
Auf beiden PCs ist das Betriebssystem Windows 7 Professional 64 bit.
Der wesentliche Unterschied zwischen beiden Dateien ist, dass die, die Probleme macht, auch sortiert werden muss, wofür ich ein Array verwende.
Ich vermute, dass es sich um ein simples Problem handelt und gehe deswegen nicht weiter ins Detail. Wahrscheinlich ist es eh eine dumme Frage, aber ich stehe echt auf dem Schlauch.
Muss ich etwa auf allen PCs, auf denen das Programm laufen soll, erst irgend etwas installieren, zum Beispiel FreeBasic?
Für Tips wäre ich sehr dankbar.
Martin


Zuletzt bearbeitet von Schnüspelpold am 09.06.2018, 12:55, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2460
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.06.2018, 17:07    Titel: Antworten mit Zitat

Also FreeBasic erzeugt grundsätzlich selbständig lauffähige Executables, von dem her braucht es keinerlei Laufzeitkomponenten auf den Zielsystemen.

Für ansonsten konkrete Hilfe wirst Du hier ziemlich rasch einmal nach der .bas-Datei (Quellcode) gefragt. -> Würde ich also geeignet hochladen und Download-Link posten. Bei kurzem Quellcode ist auch direkts Posten mit Code-Tags möglich.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Schnüspelpold



Anmeldungsdatum: 08.06.2018
Beiträge: 4

BeitragVerfasst am: 09.06.2018, 13:25    Titel: Ergänzung: Antworten mit Zitat

Der Quellcode sowie die zu bearbeitenden Dateien (Original, korrekt bearbeitet und falsch bearbeitet) können hier heruntergeladen werden:
https://c.web.de/@587109777608278661/0DL0B13uTIq4099-BPeiVw
Danke, dreael, für die Hinweise.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4215
Wohnort: ~/

BeitragVerfasst am: 09.06.2018, 18:54    Titel: Antworten mit Zitat

Ich kann mir jetzt auf die Schnelle nur vorstellen, dass die SHELL-Befehle (copy) nicht richtig funktionieren. Wenn z. B. im Dateipfad Leerzeichen vorkommen, kann es da durchaus zu Schwierigkeiten kommen. Möglicherweise funktionieren auch Netzwerkadressen nicht richtig (zumindest bei wxFBE gibt es da Probleme, und das ruft auch nur ganz regulär über die Shell auf).
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnüspelpold



Anmeldungsdatum: 08.06.2018
Beiträge: 4

BeitragVerfasst am: 09.06.2018, 22:15    Titel: Antworten mit Zitat

ja, ich muss zugeben, dass ich bei den SHELL-Befehlen auch meine Zweifel habe, ob sie immer funktionieren werden.
Konkret in diesem Fall haben sie aber immer funktioniert, egal in welchem Ordner die zu bearbeitendenden Dateien stehen.
Letztendlich machen sie ja auch wenig mehr, als Sicherungsdateien anzulegen.
Die Bearbeitung der .LOK-Datei, die mir Probleme macht, wird von den SHELL-Befehlen doch gar nicht tangiert.
Und es wird wird auf jeden Fall die richtige Datei gelesen und die richtige Datei geschrieben, was man daran sieht, dass ein Teil des Inhalts der Ausgangsdatei in der Zieldatei landet.
Es muss eigentlich irgend etwas mit der Bearbeitung der Strings schief gehen. Gibt es irgend einen Parameter in Windows, der die Funktionsweise der Zeichenkettenbefehle oder Arrays beeinflusst?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4215
Wohnort: ~/

BeitragVerfasst am: 10.06.2018, 12:36    Titel: Antworten mit Zitat

Intern geht FreeBASIC mit Zeichenketten und Arrays immer gleich um; das einzige Problem könnte mit der INTEGER- bzw. Pointergröße auftauchen, wenn das Programm einmal mit dem 32bit- und einmal mit dem 64bi-Compiler compiliert wird. Dass Windows Daten unterschiedlich speichern würde, ist mir nicht bekannt.

Hau auf jeden Fall mal testweise nach dem Kopieren (SHELL-Befehle) eine Pause rein um zu überprüfen, dass das Kopieren funktioniert hat. Als nächstes würde ich zwischen den einzelnen Verarbeitungsschritten Bildschirmausgaben einbauen, um auch hier zu prüfen, wie lange noch alles im grünen Bereich ist.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schnüspelpold



Anmeldungsdatum: 08.06.2018
Beiträge: 4

BeitragVerfasst am: 10.06.2018, 14:36    Titel: Antworten mit Zitat

Vielen Dank, nemored, Dank deines Vorschlags habe ich den Fehler gefunden, weil ich ja noch ein paar Zeilen in den Code einfügen musste.
In Zeile 54 wurde statt der dem Programm übergebenen Datei noch meine Test-Datei geöffnet - kein Wunder, dass das nur auf meinem Rechner funktionierte, denn da ist diese Datei ja vorhanden.
Tja, die Augen sind nicht mehr so gut ...
Schade, dass ich ich gleich die alte Regel beherzigt habe, das Problem zuerst einen halben Meter vor dem Bildschirm zu suchen.
Also noch einmal Danke an alle, die sich mit meinem Problem beschäftigt haben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz