Modul:Chronik/Work: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 31: Zeile 31:
end
end


function p.split(s, d)
function p.split(s, delimiter)
-- Endlich ein split, das funktioniert!
delimiter = delimiter or " "
     local result = {}
     local result = {}
      
     local start = 1
     -- Wir ersetzen das Trennzeichen d mit einem einzigartigen Token, aber entfernen es später
     local delim_start, delim_end = string.find(s, delimiter, start, true)  -- true = plain find (keine Patterns)
    local modified_input = string.gsub(s, d, "|")  -- Ersetze "bis" mit "|" (Marker für Split)
 
   
     while delim_start do
     -- Teile den String an den Markern und füge die Ergebnisse in die Tabelle ein
        table.insert(result, string.sub(s, start, delim_start - 1))
    for match in string.gmatch(modified_input, "([^|]+)") do
         start = delim_end + 1
         -- Füge jedes Element in das Resultat ein, nur wenn es nicht leer ist
         delim_start, delim_end = string.find(s, delimiter, start, true)
         if match ~= "" then
            table.insert(result, match)
        end
     end
     end
      
     table.insert(result, string.sub(s, start))
    --for _, value in ipairs(result) do
    -- mw.log(value)  -- oder print(value), wenn du es direkt in der Konsole sehen möchtest
--[[Debugging only
--end
for _, value in ipairs(result) do
    mw.log(value)  -- oder print(value), wenn du es direkt in der Konsole sehen möchtest
end]]
     return result
     return result
end
end
return p
return p
82.367

Bearbeitungen