Hallo,
hier ein Lösungsansatz meiner Seits, stichpunktartig beschrieben, umsetzung findest du unten in C#
1.) Erstellen eines Strings mit sämtlichen Buchstaben und Zahlen = "abcdef...89"
2.) Umwandeln des Input String in ToLowerCase()
2.1 Jeden Char des Input durchgehen und nach dem IndexOf in dem String aus 1.) abfragen.
3.) Wenn der IndexOf einen Wert von <0 zurück gibt, konnte kein Index ermittelt werden, somit ist ein ungültiges Zeichen im Input vorhanden
4.) Wenn der IndexOf >= 26 ist, müssen wir -=26 rechenen, da es sich in unserem String aus 1. dann um eine Zahl handelt.
5.) Sobald wir ungültige Zeichen gefiltert haben, geprüft haben ob es eine Zahl ist und diese 'konvertiert' (4.) haben, können wir den Index auf unsere Ausgabe (Integer) drauf rechnen
6.) Sind wir alle Zeichen durchgegangen, geben wir unser Ergebnis aus.
Da ich momentan nichts in B4A aufgrund zeitlichen Mangels mache, hab ich hier nochmal kurz den Code in C# umgesetzt, soll einfach nur eine Grundlegende Idee sein, da mir momentan die B4A-Syntax nicht geläufig ist ^^
int iResult = 0;
int iIndex = 0;
string sAlphaNumeric = "abcdefghijklmnopqrstuvwxyz0123456789"; //Alle verfügbaren Zeichen
string sInput = "aJ8e2Hz"; //Inputstring egal ob static oder variable durch Eingabe
sInput = sInput.ToLower(); //Alle Buchstaben klein machen
foreach (char ch in sInput)
{
iIndex = sAlphaNumeric.IndexOf(ch) + 1; //+1 => a = Buchstabe 1 jedoch Index 0
if (iIndex >= 0)
{
if (iIndex >= 27) //Wenn höher als 26 + 1 = Zahlen
{
iIndex -= 27;
}
iResult += iIndex;
}
else //-1 wird bei einem ungültigen Zeichen ausgegeben
{
throw new Exception("Ungültiges Zeichen im Input entdeckt");
}
}
Console.WriteLine(iResult); //Ergebnis Ausgeben
Ausgabe = 60
Ich hoffe ich konnte dir helfen, solltest dazu fragen haben einfach stellen
Gruß
Diversity