Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Wert aus Textdatei auslesen?

Dieses Thema im Forum "PostgreSQL" wurde erstellt von Info Shove, 25 Juni 2014.

  1. Info Shove

    Info Shove Neuer Benutzer

    Hallo.

    Ich habe Folgendes:
    - den "Code": sum(if[x = 1, 1, 0])
    - eine Textdatei, in der eine Zahl steht
    - wenig Ahnung

    Ich möchte statt x im Code die Zahl haben. Diese soll aus der Textdatei ausgelesen werden. Wie ist das möglich?

    Also das Ergebnis soll etwas wie sum(if[Fileread(path/text.txt) = 1, 1, 0]) sein. Nur dass das nicht SQL-valide ist. Was wäre der korrekte Weg?
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Auch nach mehrmaligen Lesen verstehe ich nur Bahnhof.

    Mit SQL liest man im allgemeinen keine Textdateien, sondern Tabellen innerhalb der Datenbank. In der Regel hast Du auch keinerlei Zugriff auf das Filesystem des Servers, von Ausnahmen wie COPY zum ein/auslesen von CSV-Dateien mal abgesehen. Für Zugriff auf das Filesystem bräuchtest Du untrusted Language wie pl/perlU oder pl/sh oder pl/pytonU.

    Also, von vorne:

    • was ist Dein "Code"?
    • was für eine Textdatei?
    • was soll passieren?
     
  3. Info Shove

    Info Shove Neuer Benutzer

    Ich nutze die Software "Pokertracker". Sie erstellt mithilfe von PostgreSQL eine Datenbank von gespielten Poker-Händen. Diese Datenbank kann mit Statistiken ausgewertet werden. Das Meiste läuft ohne nötige Programmierkenntnisse über Benutzeroberfläche, nur zum Erstellen neuer Statistiken schreibt der User SQL-Code (innerhalb der Benutzeroberfläche).

    Ich erstelle zum Beispiel eine Statistik namens 3Bet Preflop. Sie soll einen Wert ausgeben. Als Value Expression dieser Statistik schreibe ich:
    (cnt_p_3bet / cnt_p_3bet_opp) * 100
    Diese Expression enthält zwei Columns; cnt_p_3bet und cnt_p_3bet_opp.

    cnt_p_3bet definiere ich mit der Expression:
    sum(if[cash_hand_player_statistics.flg_p_3bet, 1, 0])
    // (cash_hand_player_statistics.flg_p_3bet ist ein "Database Field" von Pokertracker)

    Und genau hier, bei der Definition von Columns, soll ein Wert von außerhalb der Datenbank ins Spiel kommen. Der Wert in der Textdatei war nur ein Lösungsansatz, den ich für am einfachsten hielt. Ursprünglich ist der Wert eine Variable in C++ (ich kann den Wert in einer Textdatei speichern, falls das einfacher ist, als den Wert direkt von C++ zu übermitteln).

    Innerhalb dieses
    sum(if[cash_hand_player_statistics.flg_p_3bet, 1, 0])
    soll der Wert aus der Textdatei oder aus der C++ Variable verwendet werden. Zum Beispiel möchte ich prüfen, ob der Wert 1 ist, also
    sum(if[cash_hand_player_statistics.flg_p_3bet AND x = 1, 1, 0])
    oder zur Veranschaulichung des Wesentlichen wie im ersten Post einfach
    sum(if[x = 1, 1, 0])
    wobei statt x etwas eingesetzt werden muss, um den Wert aus der Textdatei oder der C++ Variable auszulesen.

    Die Textdatei ist im .txt Format und enthält nichts als eine Zahl.

    Ein Pokertracker Admin empfahl mir Folgendes:
    Leider weiß ich nicht, was zu tun ist oder wie genau. Für den Pokertracker Support ist mein Anliegen wie ihr seht zu wenig Pokertracker-spezifisch; zu viel PostgreSQL / C++ / Sonstiges.
     
    Zuletzt bearbeitet: 25 Juni 2014
  4. akretschmer

    akretschmer Datenbank-Guru


    Ahhh - alles klar. Da kommen auch viele im PG-Forum an...

    Deine Berechnung da sieht mir nicht wirklich wie eine direkt durch PG durchgeführte Berechnung aus (von der Syntax her ist das scheinbar nicht valide). Egal. Entweder bietet die Programmieroberfläche da etwas an oder aber Du speicherst das nicht in einer Textdatei, sondern wie man Dinge halt in Datenbanken gewöhnlich speichert: in Tabellen.
     
  5. Info Shove

    Info Shove Neuer Benutzer

    Die Benutzeroberfläche von PT bietet dafür nichts an.

    Wie speichert man denn etwas in einer Tabelle in der Datenbank? Wenn ich das schaffe, könnte mir der PT Support beim auslesen aus der Tabelle helfen. Er will mir nur nicht bei Anliegen außerhalb von PT helfen.
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Mit Insert. Eine neue Tabelle erstellt man mit Create table.

    Hinweis: Fleißige Leute haben nicht nur PG programmiert, sondern auch eine dufte Doku geschrieben, die die genannten Befehle (und viel mehr) ausführlich beschreibt.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden