Vinzenz Mai: Weiter Spalte anhängen

Beitrag lesen

Hallo,

warum antwortet mir denn keiner?

a) Excel-Automation über JScript (nicht Javascript) ist hier nicht so oft
   das Thema.

b) eine Codewüste, nahezu ohne Kommentare.
   Eine einzige Funktion, die über einen einigermaßen anständigen Header
   verfügt: getFiles()
   Diese Codewüste soll nun der potentielle Helfer durchforsten, den Ablauf
   nachvollziehen, um herauszufinden, wo was schiefgeht.

Das sind sehr schlechte Voraussetzungen, Hilfe zu finden.

a) Debug-Strategien, wie von Deus Figendi vorgeschlagen, anwenden, um das
   Problem einzugrenzen

b) Code kommentieren. Nein, das ist *kein* selbsterklärender Code.

c) Code vereinfachen, ein Beispiel:

        function convertAnzahlToObject( anz )  
        {  
            anz = anz.substr( 17, 3 );  
            // in anz steht nun der gewünschte Teilstring  
  
            out_anz = anz;  
            // dieser wurde in die Variable out_anz umkopiert, ...  
  
            return out_anz;  
            // nur damit der Inhalt dieser Variablen zurückgegeben werden kann  
  
        };

1. Vereinfachung:
   Umkopieren in eine Variable, die sonst nicht genutzt wird, weglassen:

        function convertAnzahlToObject( anz )  
        {  
            anz = anz.substr( 17, 3 );  
            // in anz steht nun der gewünschte Teilstring  
  
            return anz;  
            // Gib diesen zurück  
  
        };

2. Schritt:
   Überschreiben des Übergabeparameters weglassen, gleich gewünschten
   Teilstring zurückgeben:

        function convertAnzahlToObject( anz )  
        {  
            return anz.substr( 17, 3 );  
        };

Aber:
Was ist "anz"?
Warum ist dies ein Objekt (siehe Funktionsname)?
Woher kommen die magischen Zahlen 17 und 3?

Alles in allem eine Funktion, deren Sinn der Leser ohne Hintergrundwissen nicht versteht. Vermittle in Kommentaren (hier im Headerkommentar) dieses Wissen. Reduziere unnötige Komplexität durch Entfernen überflüssigen Codes (hier zwei von drei Codezeilen).

Freundliche Grüße

Vinzenz