dr.byte

Wert aus txt auslesen und in ein bestimmtes feld setzen

Hallo,

ich benutze folgenden Text um bei einem bestimmten Wert einen bestimmten Begriff in ein bestimmtes Feld zu setzen:
Die daten liegen in einer txt datei unter idaten:


function GetIFoto(AProposedValues) {
if (MatchText("%jpg%", IDaten)) { return "Foto"; }
else if (MatchText("%mpg%", IDaten)) { return "Film"; }
else return False;
}

funtioniert eiwandfrei.


wenn ich aber einen Wert auslesen will z.b. die länge des Films


sieht in dem Textfile so aus:

Duration : 2 h 0 min

wie würde dann die Funktion für:

function GetIRuntime setzten ?

Er soll nicht mit match arbeiten und eintragen sondern er so aus "2 h 0 min" dann "2:00:00" und in neinem bestimmten Feld eintragen ....

ICh hoffen ich bin hier richtig und ihr könnt mir helfen ...

Vielen Dank ...
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 340396

Url: https://administrator.de/forum/wert-aus-txt-auslesen-und-in-ein-bestimmtes-feld-setzen-340396.html

Ausgedruckt am: 15.05.2025 um 12:05 Uhr

em-pie
em-pie 12.06.2017 um 21:04:39 Uhr
Goto Top
Moin,

naja, du kannst ja nach dem Wert/ der Zeile, in der der Begriff "Duration" enthalten ist, suchen.
Diese Zeile verwendest du,
  • und spliitest (str_split()) mittels des Trennzeichens ":"
  • oder aber du liest erst ab dem 11 Zeichen, von links beginnend ein.
Anschließend mit dem Rest, den du noch hast (also z.B. 2 h 2 min), ersetzt (str_replace()) du einfach das " h " und das " min " (in beiden Fällen das Leerzeichen mitnehmen) durch ein ":".

Du müsstets nur prüfen/ abfangen, dass deine Minuten ebenfalls zweistellig verwendet werden, wenn dies <10 sind...

Gruß
em-pie
133417
133417 12.06.2017, aktualisiert am 13.06.2017 um 11:42:30 Uhr
Goto Top
Mögliche Variante:
<?PHP
$content = file_get_contents('file.txt');  
if (preg_match("/Duration\s*:\s*((\d+)\s*h)?\s*((\d+)\s*min)?/is",$content,$match)){  
    $hours = ($match[2] != '') ? str_pad($match[2],2,'0',STR_PAD_LEFT) : '00';  
    $minutes = ($match[4] != '') ? str_pad($match[4],2,'0',STR_PAD_LEFT) : '00';  
    echo "$hours:$minutes:00";  
}
?>
Gruß

p.s. Wo holst du die Funktion MatchText() her?? In PHP gibts die jedenfalls nicht, da gibts nur preg_match() /preg_match_all().