Wert aus Textdatei auslesen?

Info Shove

Neuer Benutzer
Beiträge
3
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?
 
Werbung:
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?

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?
 
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:
I'm afraid that's really beyond the scope of our help here in the forums. The best I can tell you is that you probably want to look into creating a custom pl/pgsql function and calling that from within your column definition. Or hard coding it into your columns, depending exactly what you want to do.
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:
Ich nutze die Software "Pokertracker".


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.
 
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.
 
Werbung:
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.

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.
 
Zurück
Oben