Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Allgemeines Problemlöseverhalten beim Programmieren

Yves3 / 2 Antworten / Baumansicht Nickles

Hallo,

Mich würde interessieren, wie ihr beim Lösen von Problemen vorgeht.
Ich persönlich sitze jetzt schon Stunden am gleichen Problem und komme einfach kein Stück voran.

Ich mache das normalerweise etwa so:
1. Logisch überlegen, sehe ich den Fehler irgendwo?
2. Kurz googlen nach der Fehlermeldung, Fehlerbeschreibung etc...
3. Ursachen des Fehlers/Problems eingrenzen und ausprobieren
4. Ausführlich googeln
5. Jemanden fragen (Forum, Kollegen ...)
6. Verzweifeltes zielloses rumgeeier und geklicke durch alle Menus, tausendfaches lesen deselben Codeteils und ständig wieder abgelenkt werden.

Im Moment bin ich gerade bei Punk 6 und das schon eine ganze Weile. :(
Ich habe das Gefühl, dass an meinem Vorgehen irgend etwas noch nicht so ganz stimmt, oder ich irgend etwas nicht ganz richtig mache, weil es relativ häufig vorkommt, dass ich bis zu Punkt 6 komme.

Kennt jemand noch einen Geheimtipp? Wie macht ihr das?

PS: Das aktuelles Problem ist relativ spezifisch, ich habe die Frage deshalb auch nicht hier gestellt... aber falls jemand doch etwas weiss: Mein Thread im asp.net Forum


bei Antwort benachrichtigen
Andreas42 Yves3 „Allgemeines Problemlöseverhalten beim Programmieren“
Optionen

Hi!

Solche verzwickten Probleme kenne ich (ohne deinen besonderen Fall jetzt nachgelesen zu haben).

meine Lösung sieht dann oft so aus wie bei dir. Als 6. Punkt kommt dann allerdings "Hinterfragen des bisherigen Lösungsweges". ;-)

Oft gibt es mehr als eine Lösung, um ein Ergebnis zu erzielen bzw. eine Verarbeitung zu erreichen. Ich mache mich daher dann i.d.R. auf die Suche nach "Plan B", versuche also einen anderen Lösungsweg zu erstellen.
Das muss nicht umgesetzt werden. Oft kann man das Problem dabei mal aus einer anderen Richtung untersuchen und dann im Vergleich feststellen, wo das Problem liegen könnte.

Bezogen auf dein Problem (ich nutze allerdings ASP.net überhaupt nicht und kann auch nicht wirklich damit umgehen): versuchst du aus einer Tabelle Zeitwerte zu lesen und als Spalte ausgeben zu lassen?

Falls das so ist und die Formatierung als reiner Datumswert funktioniert, dann prüfe doch mal, ob die den Wert ein zweites Mal als Zeit-Wert ausgeben kannst.

Ich habe hier mit einer ERP-Software zu tun (kein SAP), da werden Zeit/Datumswerte intern als LONG gespeichert und dann in Reports (per STRING-Formatierung, verglkeichbar wie dein DateTimeFormat) ausgegeben (es existieren Funktionen um den interne UTC-Wert in einen String zu konvertieren). Da bekomme ich auch nicht jedes gewünschte Format hin.

Ich habe da schon "Sonderformate" manuell (zu Fuss) erzeugt, indem ich die einfache Umwandlung in das Basistringformat ("DDMMYYYY" und "HHMMSS") genutzt habe und mir dann mein Format per String-Concat zusammengesetzt habe, bevor ich ihn ausgebe. Nicht besonders originell und auch kein bisschen elegant, aber es läuft...

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Yves3 Andreas42 „Hi! Solche verzwickten Probleme kenne ich ohne deinen besonderen Fall jetzt...“
Optionen

Bei meinem speziellen Problem geht es darum, aus einer Textdatei verschiedene Werte, die durch Leerzeichen getrennt sind, auszulesen. Die ersten beiden Werte sind Timestamps im Format "dd.mm.yyyy_hh:nn:ss". Diese Daten müssen ausgelesen und verarbeitet werden und werden schliesslich mit einem XSLT-Stylesheet in ein Excel-Dokument (SpreadsheetML) konvertiert.
Man hat die Möglichkeit so ein Textfile relativ einfach mit einem ODBC-Texttreiber einzulesen. Intern wird es dann fast wie eine Datenbank gespeichert und kann auch über SQL-Queries verändert werden. Mittlerweile habe ich herausgefunden, dass ODBC wohl scheinbar nur Daten und keine Zeiten unterstützt (Schliesslich kannte man zu der Zeit als das entwickelt wurde noch keine kleineren Zeiteinheiten als Tage... *hust*). Seltsam ist nur, dass es dann trotzdem so gut funktioniert hat und zumindest das Datum korrekt ausgegeben hat. Ich werde es jetzt jedenfalls mal mit OLE DB probieren. Dort sollte es Datetime geben und fast gleich funktionieren. Habe leider erst übermorgen wieder Zeit zum Weitermachen.

Deinen Ratschlag zu Punkt6 sollte ich mir vielleicht zu Herzen nehmen. Es ist tatsächlich so, dass ich mich manchmal zu fest auf eine bestimmte Lösung versteife und vielleicht auch ein bisschen zu faul bin, noch einmal alles über den Haufen zu werfen und (teilweise) von vorne zu beginnen.
Vielen Dank!

Selbstverständlich sind auch weitere Tipps und Erfahrungsberichte von anderen noch willkommen. ;)

bei Antwort benachrichtigen