romero: search( Variable/i )? geht das denn?

Hallo liebe Gemeinde,

ich habe wieder ein Problem, wo ich eure Hilfe bräuchte.

Erstmal ein Scriptauszug über mein Problem:

function Excel_Tabelle1()  
{  
	var WshShell = new ActiveXObject("WScript.Shell");  
	var WshSysEnv = WshShell.Environment("Process");			  
	var Benutzer_temp = WshSysEnv("USERNAME").replace( /\\/g, "/" );  
	var Benutzer = Benutzer_temp.substr( 0, Benutzer_temp.length-1 );  
	  
	var WorkSheet, Excel, WorkBook;  
	  
	Worksheet = "C:/.../Benutzerabfrage.xls";  
	Sheet = "Übersicht";  
	  
	ExcelApp = new ActiveXObject("Excel.Application");  
	var Excel_File = ExcelApp.Workbooks.Open(Worksheet);  
  
	var table = Excel_File.Sheets( 1 ).UsedRange;  
	  
	for( var y = 1; y < table.Rows.Count; y++ )  
	{		  
		var w = table.Cells( y, 1 ).Text;  
		  
		if( w.search( Benutzer ) != -1 )  
		{  
			var x = y;  
		};  
	};  
  
	var z = table.Cells( x, 2 ).Text;  
	z++;  
	  
	table.Cells( x, 2 ).Value = z;  
	  
	Excel_File.Save();  
	Excel_File.Close();  
        ExcelApp.Quit();  
        ExcelApp = null;  
};

Ich lese mittels new ActiveXObject("WScript.Shell") den USERNAME oder den Anmeldename aus. Dann öffne ich eine Excel-Tabelle, wo die Anmeldenamen geordnet stehen. Sinn besteht darin, dass ich mittels dieser Funktion ermitteln möchte, was genau der Nutzer an Daten ausliest bzw. wie oft er das gesamte Script nutzt.

Den USERNAME habe ich als "Benutzer" deklariert. Ich möchte nun die Excelliste auslesen, den in der Excelliste vorhandenen Namen mit dem Benutzer vergleichen und dann die Anzahl der Ausführungen (Start des Scriptes) eintragen.

Nun kann es aber passieren, dass der Nutzer sich mit kleinen Buchstaben anmeldet und somit erscheint auch der Benutzer als kleinbuchstäbige Variabel. Der danach folgende Vergleich scheitert aber, da er quasi den kleingeschriebenen Nutzer nicht findet, sofern er nicht in der Excelliste steht.

Wie umgehe ich als das Problem? Ich habe versucht mittels search( Benutzer/i ). Aber das funktioniert nicht. Ich kann also die Variable nicht so ansprechen, als wenn es egal sei, ob da Groß- oder Kleinbuchstaben wären.

Nun die Frage an euch. Gibt es da was besseres ausser search() oder muss ich nur die Variable anders deklarieren?

Lieben Dank schonmal.
LG Romero

  1. Hi,

    Nun kann es aber passieren, dass der Nutzer sich mit kleinen Buchstaben anmeldet und somit erscheint auch der Benutzer als kleinbuchstäbige Variabel. Der danach folgende Vergleich scheitert aber, da er quasi den kleingeschriebenen Nutzer nicht findet, sofern er nicht in der Excelliste steht.

    Wie umgehe ich als das Problem?

    Indem du beide Vergleichswerte vorher in Kleinbuchstaben-Schreibweise umwandelst.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Indem du beide Vergleichswerte vorher in Kleinbuchstaben-Schreibweise umwandelst.

      MfG ChrisB

      D.h. also toLowerCase( Benutzer ) und Kleinschreibweise in der Excelliste?

      gibt es da keine andere Lösung?

      War schon an dem Gedanken dran, nur den 1. Buchstaben des "Benutzer"'s groß schreiben zu lassen, über toUpperCase( Benutzer.substr( 0, 1 ) ).

      LG Romero

      1. Hi,

        Indem du beide Vergleichswerte vorher in Kleinbuchstaben-Schreibweise umwandelst.

        D.h. also toLowerCase( Benutzer )

        Nö.

        und Kleinschreibweise in der Excelliste?

        Nö, ebenfalls toLowerCase.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hi,

          Indem du beide Vergleichswerte vorher in Kleinbuchstaben-Schreibweise umwandelst.

          D.h. also toLowerCase( Benutzer )

          Nö.

          und Kleinschreibweise in der Excelliste?

          Nö, ebenfalls toLowerCase.

          MfG ChrisB

          Achso. Daran habsch auch noch nicht nachgedacht...
          Danke dafür.

          LG Romero

  2. @@romero:

    nuqneH

    Gibt es da was besseres ausser search()

    Ja: http://de.selfhtml.org/javascript/objekte/string.htm#index_of@title=indexOf()

    Mit regulärem Ausdruck nach einem festen String zu suchen ist mit Kanonen auf Spatzen schießen.

    Qapla'

    PS: Die Umwandlung beider Strings in Kleinschreibung (oder beider in Großschreibung) natürlich trotzdem.

    --
    „Perfektion ist nicht dann erreicht, wenn es nichts mehr hinzuzufügen gibt, sondern wenn man nichts mehr weglassen kann.“ (Antoine de Saint-Exupéry)