• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

infos aus note.txt in statistik

Wawa666

Geocacher
hi

wie kann ich den infos aus den note.txt in die statistik bringen wie z.b.:
Teambeteiligung, Transportmittel
auf der seite hier
gibts da was fertiges oder muss man sich das selbst erknobeln????

mfg
Wawa666
 

HSCA

Geomaster
Hi,
Wawa666 schrieb:
wie kann ich den infos aus den note.txt in die statistik bringen wie z.b.:
Teambeteiligung, Transportmittel
auf der seite hier
gibts da was fertiges oder muss man sich das selbst erknobeln????

ich habe es mir inzwischen so zusammengebaut, dass es alles automatisch abläuft. Also Ja, es gibt was fertiges. Was darfs denn sein? :D

Hier sind die von dir erwähnten Teambeteiligung und Transportmittel.
HSCA
 

Anhänge

  • accessstat.zip
    445 Bytes · Aufrufe: 19
  • teamstat.zip
    443 Bytes · Aufrufe: 23
OP
Wawa666

Wawa666

Geocacher
danke für die schnelle hilfe :roll: ... aber irgendwie mag der das so bei mir nicht...äm was daran liegt das ich ja nicht mit ("H", "S", "C", "A", "R", "L") markiert hab

also ich hab in den feld optional1: dann z.b.:
<a href="http://www.geocaching.com/profile/?guid=blabla"><font color="#FF0000">xyz</font></a>

drinnen stehen wie kann ich davon die gleichen zählen lasen un die prozent hinten dran muss ich dann nur
Code:
foreach $mem (("H", "S", "C", "A", "R", "L"))
rauslöschen oder wie gehts am besten???
dachte dran das der quasie dieses H, S,C.. usw. selber raussucht....
geht das??
 
OP
Wawa666

Wawa666

Geocacher
ok hab schon fast geschaft ....
wie kann ich das nun noch machen das wenn ich 2 einträge mit
Code:
<a href="http://www.geocaching.com/profile/?guid=blabla"><font color="#FF0000">xyz</font></a>, <a href="http://www.geocaching.com/profile/?guid=blabla1"><font color="#FF0000">abc</font></a>
drin hab das der nicht den kompletten string als eintrag sieht sondern dann nur die einzelnen angugt???
Code:
##eval(
  sub StatAccess {
    my(%access);
    my($title);
	foreach (keys(%found)) {
      $title = "";
      $title = $1 if ($found{$_}->{'Optional1'});
      $access{$found{$_}->{'Optional1'}}++
	if ($found{$_}->{'Optional1'} ne "");
    }
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
  }
  StatAccess();
  )##
so hab ichs aktuell muss dann hinter $title = $1 if ($found{$_}->{'Optional1'}); noch was schreiben oder aber was????
 

HSCA

Geomaster
Also ich lasse meine Felder der note.txt aus den Logeinträgen wie folgt füllen:
Access-> (Wie sind wir hingekommen) bike.gif, hike.gif, car.gif usw.
Optional1-> (Wer war alles mit) HSCA ... (Jeder Buchstabe steht für eine Person)
Optional2-> (Wer war der Finder) H ... (dto)
Optional3-> (Wann waren wir da) 13:43 ..
Diese Einträge stammen aus den GC Logeinträgen und werden dann in die note.txt übertragen,

Wawa666 schrieb:
wie kann ich das nun noch machen das wenn ich 2 einträge mit
Code:
<a href="http://www.geocaching.com/profile/?guid=blabla"><font color="#FF0000">xyz</font></a>, <a href="http://www.geocaching.com/profile/?guid=blabla1"><font color="#FF0000">abc</font></a>
drin hab das der nicht den kompletten string als eintrag sieht sondern dann nur die einzelnen angugt???
Eine Möglichkeit wäre deinen kompletten String mit split aufzuteilen.
Code:
@tokens = split(/,/,$found{$_}->{'Optional1'});
Dann hast du in tokens die Werte getrennt stehen und kannst wieder die gleichen zusammenzählen. (Eventuell musst du noch die vorstehenden Leerzeichen entfernen)
Wawa666 schrieb:
Code:
##eval(
  sub StatAccess {
    my(%access);
    my($title);
	foreach (keys(%found)) {
      $title = "";
      $title = $1 if ($found{$_}->{'Optional1'});
      $access{$found{$_}->{'Optional1'}}++
	if ($found{$_}->{'Optional1'} ne "");
    }
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
  }
  StatAccess();
  )##
so hab ichs aktuell muss dann hinter $title = $1 if ($found{$_}->{'Optional1'}); noch was schreiben oder aber was????
Ich dachte in Optional1 steht dein Team drin? :???: Wenn in Optional1 der Wert drinnen steht, den du zählen möchtest, dann reicht:
Code:
##eval(
  sub StatAccess {
    my(%access);
    foreach (keys(%found)) {
      $access{$found{$_}->{'Optional1'}}++
    }
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
  }
  StatAccess();
  )##
 
OP
Wawa666

Wawa666

Geocacher
und wie bau ich den
Code:
@tokens = split(/,/,$found{$_}->{'Optional1'});
in diese sortierung ein??

Code:
##eval(
  sub StatAccess {
    my(%access);
    foreach (keys(%found)) {
@tokens = split(/,/,$found{$_}->{'Optional1'}); 
      $access{$found{$_}->{'Optional1'}}++
    }
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
  }
  StatAccess();
  )##

????
naja ich hab in Optional1 die leute drin mit denen ich cachen war also entweder
Code:
<a href="http://www.geocaching.com/profile/?guid=blabla"><font color="#FF0000">xyz</font></a>, 
<a href="http://www.geocaching.com/profile/?guid=blabla1"><font color="#FF0000">abc</font></a>
oder
Code:
<a href="http://www.geocaching.com/profile/?guid=blabla"><font color="#FF0000">xyz</font></a>
und das möchte ich eben auch so anzeigen lassen wie das mit der Teambeteiligung...
 

HSCA

Geomaster
Wawa666 schrieb:
und wie bau ich den
Code:
@tokens = split(/,/,$found{$_}->{'Optional1'});
in diese sortierung ein??

Code:
##eval(
  sub StatAccess {
    my(%access);
    foreach (keys(%found)) {
@tokens = split(/,/,$found{$_}->{'Optional1'}); 
      $access{$found{$_}->{'Optional1'}}++
    }
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
  }
  StatAccess();
  )##

????
naja ich hab in Optional1 die leute drin mit denen ich cachen war also entweder
Code:
<a href="http://www.geocaching.com/profile/?guid=blabla"><font color="#FF0000">xyz</font></a>, 
<a href="http://www.geocaching.com/profile/?guid=blabla1"><font color="#FF0000">abc</font></a>
oder
Code:
<a href="http://www.geocaching.com/profile/?guid=blabla"><font color="#FF0000">xyz</font></a>
und das möchte ich eben auch so anzeigen lassen wie das mit der Teambeteiligung...

So sollte es eigentlich funktionieren.

Code:
##eval(
  sub StatAccess {
    my(%access);
    my(@token);
    my($teammember);
    foreach (keys(%found)) {
      @token = split(/,/,$found{$_}->{'Optional1'});
      foreach($teammember(@token))
        $access{$teammember}++;
      }
    }
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
  }
  StatAccess();
  )##

Ich habs aber nicht ausprobiert.
So soll die Routine prinzipiell funktionieren: Die Routine erzeugt jetzt bei jedem Komma ein neuen Eintrag in Token. Wenn du also nur 1 Teammitglied hattes gibt es nur einen Eintrag, wenn du mehr Mitglieder hattes gibts halt mehr Einträge. Für jeden Eintrag in token werden jetzt die gleichen gezählt.
 
OP
Wawa666

Wawa666

Geocacher
bring dann leider folgenden fehler...
fehlerjjpg.jpg
 
OP
Wawa666

Wawa666

Geocacher
hab es nun etwas verändert aber bekomm eine fehlermeldung einfach nicht weg :(

Code:
##eval(
  sub StatAccess {
    my(%access);
    my(@token);
    my($teammember);
    foreach (keys(%found)) 
	  {
      @token = split(/, /,$found{$_}->{'Optional1'});
      foreach($teammember(@token))
	    {
        %access{$teammember}++
		}
      }    
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
    }
  StatAccess();
  )##

einziger verbleibender fehler ist nun noch
Syntax error at (eval 25 line 9, near "$teammember("
 

HSCA

Geomaster
Sorry, das passiert mir meistens beim ersten Codeversuch. :D Deshalb schicke ich selten Code raus, den ich noch nicht getestet habe. :kopfwand:
Ich versuche es nochmal:
Code:
##eval(
  sub StatAccess {
    my(%access);
    my(@token);
    foreach (keys(%found)) {
      @token = split(/,/,$found{$_}->{'Optional1'});
      foreach(@token) {
        $access{$_}++;
      }
    }
    return(maketds(1,4,13,5,7,scalar(keys(%found)),pairsort(1,0,%access)));
  }
  StatAccess();
  )##

Bei geolog ist er erstmal durchgelaufen. Jetzt musst du nur noch prüfen, ob die Aufteilung auch i.O. ist.
Bei mir kam als Ergebnis die Statistik: "Transportmittel test" raus. Für meine Datenbank sind das auch vernünftige Ergebnisse.

Christian
 
OP
Wawa666

Wawa666

Geocacher
ja danke klappt super!!! :D :D :D :D :D
was ist das den füür ne sprache perl??? werd mich dann nechste semesterferien mal damit befassen.... ist doch etwas viel anders als in c++...
 

HSCA

Geomaster
Ja ist Perl :D

Ich habe perl vor geolog auch noch nie benutzt, hab mich in den Anfängen aber jetzt reingearbeitet. Ist am Anfang etwas gewöhungsbedürftig, geht dann aber. ;)
 
Oben