Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA to PHP

VBA to PHP
06.12.2005 07:36:57
Conny
Hallo Leute ich weiß nicht ob mir hier wer helfen kann, aber ich habe mal vor längerer Zeit die beiden Funktionen in VBA geschrieben. Nun möchte ich im Grunde das gleiche mit PHP machen. Doch da scheitern meine Versuche zumindest bei der zweiten Funktion.
Tipp ist ein Array aus Strings in diesem soll ein String der sich hinter Rennen verbirgt gesucht werden. Ist dies der Fall, so soll die Funktion die Zahl „Punkte“ zurückgeben, falls nicht soll 0 zurück gegeben werden.

Private Function imTipp(Tipp As Object, Rennen, Punkte As Integer) As Integer
'Tipp   = (Feld) aller getippten Fahrer für ein Rennen
'Rennen = Platzierung eines Fahrers (Name) in diesem Rennen
'Punkte = Tipppunkte nach Tippregeln
Dim Platz As Object
imTipp = 0
If Rennen <> "" Then
For Each Platz In Tipp
If Rennen = Platz Then imTipp = Punkte: Exit Function
Next Platz
End If
End Function

Diese Funktion durchläuft zwei Spalten. Beide Spalten müssen „AnzahlRichtige“ in identischer Reihenfolge dastehen, ist dies der Fall, so gibt die Funktion ebenfalls den Wert der bei Punkten steht zurück.

Private Function richtigerTipp(Zieleinlauf As Object, AnzahlRichtige As Integer, Punkte As Integer) As Integer
'Zieleinlauf    = (Feld) Platzierungen im Rennen
'AnzahlRichtige = davon in richtiger Reihenfolge
'Punkte         = Tipppunkte nach Tippregeln
Dim RT As Object
richtigerTipp = 0: i = 1
For Each RT In Zieleinlauf
strCellTipp = vbNullString
strCellRennen = vbNullString
strCellTipp = RT(1, 0) 'Tipp
strCellRennen = RT(1, 1) 'Rennen
If (strCellTipp <> strCellRennen) Or _
(AnzahlRichtige - i > 0 And RT(2, 1) = "") Or _
RT(1, 1) = "" Then richtigerTipp = 0: Exit Function
If i = AnzahlRichtige + 1 Then Exit Function
richtigerTipp = Punkte: i = i + 1
Next RT
End Function

Nun mein PHP Versuch:
//$punkt = imTipp(array(AP,NH,ZU,MS,DC),'MS',2);
Diese Funktion entspricht in etwa der ersten aus Excel.
function imTipp($Tipp, $Rennen, $Punkte)
{
//Tipp = (Feld) aller getippten Fahrer für ein Rennen
//Rennen = Platzierung eines Fahrers (Name) in diesem Rennen
//Punkte = Tipppunkte nach Tippregeln
If ($Rennen "")
{
foreach($Tipp as $P => $Platz)
{
If ($Rennen == $Platz)
{
return $Punkte;
exit();
}
}
}
return 0;
}
//echo "Punkte: ".$punkt;
//$punkt2 = imTipp2(array(AP,NL,ZU,IO,DC,WE),array(AP,NH,ZU,OP,DC),2);
Diese Funktion entspricht immer noch mehr der Ersten und ist für meinen Zweck auch brauchbar. Jedoch wird die Anzahl der gleichen Elemente ermittelt, nicht jedoch das sie in der selben Reihenfolge sind.
function imTipp2($RennTipp, $Zieleinlauf, $Punkte)
{
//RennTipp = (Feld) getippte Platzierungen
//Zieleinlauf = (Feld) Platzierungen im Rennen
//Punkte = Tipppunkte nach Tippregeln
$i = 0;
foreach ($Zieleinlauf as $R => $Rennen)
{
foreach($RennTipp as $T => $Tipp)
{
If ($Tipp == $Rennen)
{
$i++;
}
}
}
return $i*$Punkte;
}
//echo "
Punkte2: ".$punkt2."
";
Hat jemand ne Idee wie ich die zweite VBA-Funktion in PHP überstetzen kann?
Gruß Conny

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA to PHP
06.12.2005 11:05:00
Conny
Im PHP-Forum sagte man mir, dass man den VBA Code nicht verstehe und das Problem sich nicht so einfach lösen läßt.
AW: VBA to PHP
06.12.2005 12:14:17
DieterB
Dann hast du die Frage wohl falsch gestellt.
Wenn du im PHP - Forum VBA-Code postest, hast du
das gleiche Prob, als wenn du im Excel-Forum PHP - Code postest.
Stelle die Frage doch mal ganz einfach:
welche Daten hast du, was soll das Ergebnis sein?
Viel Erfolg
Gruß DieterB
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige