Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 240719 (2155)

| Suchen
| Zurück zur Übersicht

Autor | Thema: DToC$ - Funktion
M. Schmidt
| Datum:14.10.02 15:06 (mathias.schmidt@polizei.sachsen.de) |
Folgendes Problem harrt einer Lösung: Die Funktion @DToC$ erwartet ein Datum (wie in der Hilfe beschrieben) in der Form "JJMMTT". Leider funktioniert das so nicht! Es müssen die Anführungstriche mit angegeben werden. Aha, setzt Du sie halt vorn und hinten dran, denn in der Variablen a$ werden sie weginterpretiert, so dass in c$ der richtige Wert steht und somit eine korrekte Interpretation erfolgen müsste. Wieder falsch! Es wird wieder der Fehler "Falscher Typ für "@DToC$" ausgegeben! Wo liegt der Fehler???? declare a$,b$,c$,anf$,d$ cls let anf$ = @Chr$(0168) let a$ = "20021014" let b$ = @Add$(anf$,a$) let c$ = @Add$(b$,anf$) let d$ = @DToC$(c$) print a$,b$,c$,d$ waitkey end Danke Mathias
Heiko Reddingius
| Datum:14.10.02 15:31 (webmaster@nvse.de) |
Hi Mathias, ganz einfach: gib' mal die Alt+0168 (¨) ein und im Vergleich dazu ALT+34 (") ... mit 168 hast die Punkte, die Du für einige Sonderzeichen brauchst (frag' mich nicht wie die Dinger heißen, ich wußte es mal), vor allem im französischen und niederländischen - aber keine Anführungszeichen. Die bekommst Du über Alt+34 bzw. @Chr$(34). Gruß Heiko
Gerd Telzerow
| Datum:14.10.02 21:39 (GTelzerow@T-Online.de) |
Hallo Mathias, so geht es. let d$ = @DToC$(@Str$(@Val(a$))) Mfg Gerd
Roland G. Hülsmann
| Datum:15.10.02 01:01 (rgh-soft@t-online.de) |
Wozu der ganze Umstand? Es werden keine Anführungszeichen gebraucht. So funktioniert es:
    declare a$,d$
    cls
    let a$ = "20021014"
    let d$ = @DToC$(a$)
    print a$,d$
    waitkey
    end
Es ist lediglich darauf zu achten, daß der Parameter von @DToC$ wirklich ein String mit dem Format "JJJJMMTT" ist, also exakt 8 Zeichen lang! Gruß Roland
M. Schmidt
| Datum:15.10.02 07:18 (mathias.schmidt@polizei.sachsen.de) |
Nun denn der Umstand ist schon nötig und so wie Du es beschrieben hast, funktioniert es ja tatsächlich. Ich extrahiere den String, der ja eigentlich ein numerischer wert ist, aus einem Dateinamen und da kann ich die Variable halt nicht mit einem absoluten Wert belegen. Ich muss also der Variablen den extrahierten Wert: 20021014 zuweisen. Und dieser wird in der Funktion falsch interpretiert. Auch die Lösungen von Heiko und Gerd (Er setzte hier a$ ein. Aber wenn ich d$ einsetze, gehts wieder nicht.) bringen nicht das Ergebnis. Vielleicht einfach nochmal mein kurzes Beispiel aus der Ausgangsfrage durchtesten. Wie weiter? Aber schon mal Danke an die Helfer! Mathias PS: Bei Bedarf schick ich gern den kompletten Quelltext. Das Progrämmchen soll aus den Logfiles (Format z. B. ex021014.log) eines Internet Informtion Servers 5.0 Strings auslesen und diese an ein externes Programm (Perl) übergeben.
Roland G. Hülsmann
| Datum:15.10.02 07:54 (rgh-soft@t-online.de) |
Vielleicht solltest Du deutlicher machen, was bei Dir nicht funktioniert. Offenbar ist Dein Problem, daß Du den String aus dem Dateinamen heraus falsch zusammensetzt, und er dannn eben NICHT das Format "JJJJMMTT" hat! (Wohlgemnerkt: Jahreszahl vierstellig!) Nehmen wir also an, der Dateiname (egal wie er nun eingelesen wird - im Beispiel eben durch Zuweisung) sei ex021014.log:
    declare a$,d$
    cls
    let a$ = "ex021014.log"
    let a$ = @mid$(a$,3,6)     ' Das Datum ausschneiden "021014"
    let a$ = @add$("20",a$)    ' Jahrhundert dazu "20021014"
    let d$ = @DToC$(a$)
    print a$,d$
    waitkey
    end
Die Sache mit dem Zufügen von Anführungszeichen ist in jedem Fall ein Fehler! Natürlich hätte man auch die beiden Zeilen, die a$ behandeln, zu einer zusammenfassen können:
    let a$ = @add$("20",@mid$(a$,3,6))
Gruß Roland
M. Schmidt
| Datum: 15.10.02 08:54 (mathias.schmidt@polizei.sachsen.de) |
Jipp, das wars im wesentlichen. Dankeschön!!! Ich hatte tatsächlich den String falsch zusammengesetzt. Bei der Verwendung von @ins$ statt @add$ gehts schief. Das @ins$ war gar nicht nötig! Danke an alle und vor allem nochmal an Roland Tschau Mathias PS: Nach so vielen Jahren der Profan-Abstinenz fand ichs toll Hilfe zu bekommen. Hab mal bei Version 2.6f angefangen. Leider fehlte dann später die Zeit fortzusetzen.
Bernd Haase
| Datum:15.10.02 07:32 (info@ebs-haase.de) |
Hi ! Also wenn ich bei Deinem Beispiel statt c$ a$ einsetze, klappt das wunderbar bei mir. Dies entspricht also dem Beispiel von Roland. Wo ist denn nun das Problem ?

| Zurück zur Übersicht