Autor Beitrag
Philipp_Reitter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: Do 15.06.06 09:08 
hi

ich möcht ein spiel programmieren .. nent sich Picture War
wer nicht weiß was das ist .. man postet immer in bild was dem andern schadet oder z.b. eine fliege udn der nächst postet einen fliegenklatscher udn der nächste wieder was was dem fliegenklatscher schadet doer so...
(bsp.: forum.giga.de/showth...t=72790&page=752 )

jedenfalls möchte ich mit mit delphi in eine PHP datei posten die schriebt das dann in eine TXT ... das ging ja schon ganz gut (hab ein tutorial geacmht) nur man konnte immer nur eine zeile schrieben und wenn man was neues schrieb dann wurde die letze zeile überschrieben...!?


und wie kann ich das ganze dann wieder abrufen??
und zwar so dass delphi das delphi weiß welches der link ist udn welches der kommentar???
ich mein so:

Link=
KOmmentar=

link=
kommentar=
...
..
wunsiedler
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 506
Erhaltene Danke: 4

Win7

BeitragVerfasst: Do 15.06.06 10:03 
:shock:
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Do 15.06.06 10:30 
Ich habe echte Schwierigkeiten Dir zu folgen!

1. Bemühe Dich bitte um eine richtige Schreibweise/Aussprache.

nur man konnte immer nur eine zeile schrieben und wenn man was neues schrieb dann wurde die letze zeile überschrieben (KOMMAS!!!)

und zwar so dass delphi das delphi weiß welches der link ist udn welches der kommentar??? (WAT???)

2. Poste bitte etwas Quelltext. Insbesondere den Teil, wo Du die Textdatei füllst. Dann können wir Dir sagen, was Dein Fehler ist.

3. Den Teil mit dem Kommentar verstehe ich nicht. Was willst Du erreichen? Ich vermute mal(schlimm das, dass notwendig ist), dass Du verschiedene Informationen speichern willst, die aber mit einer Art Index unterschieden werden können.
Dann ist das Verwenden von IniFiles Dein neues Lernthema. Aber da gibt es schon Tutorials. Brauchste keins zu machen. :wink:

Beispiel von MeineWohnung.ini:

[MexxWohnung]
ORT=enthausen
MOEBEL=couch,tisch,schrank

In Delphi kannst Du dies dann auslesen und verabreiten.

Viel Erfolg! :D

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 15.06.06 10:59 
Ich weiß was er meint, aber ohne Source kann ich da nicht helfen. Wenn du die Textdateien dann auslesen willst, musst du nur mit Indy.Get (oder je nachdem, was du da verwendest) die Textdatei öffnen, da die wie eine INI aufgebaut sein wird, müsstest du es dann auch wie eine INI auslesen können - im Notfall die Datei runterladen und dann auslesen.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Philipp_Reitter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: Do 15.06.06 11:21 
aber wenn ich das mit inifiles mache dann muss ich die immer auf den server laden und herunter laden lassen und um auf den server zu kommen muss ich ja mein passwort angeben und das kann man (was ich gehört habe) aus dem programm herauslesen oder so...

jedenfalls will ich das man einen Link posten kann und ein Kommentar
aber wir bekomm ich das hin dass er mir mehrer zeilen schreibt.... ich mein dass er mir nicht immer die erste zeile überschreibt...?

ich hab das so aus einem tutorial heraus:

PHP File (interface.php)

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
<?php  
$file = getcwd().'/code.txt';  

 
$users[0] = 'Philipp';  
$pws[0] = '123';  

 
$MyData[0] = $_REQUEST['code'];  
$MyData[1] = $_REQUEST['user'];  
$MyData[2] = $_REQUEST['pwd'];  

 
function is_login($User, $Password){  
  global $users, $pws;  
  if((in_array($User, $users)) AND (in_array($Password, $pws))) { Return true; } else { Return false; }  
}  

function write($Datei, $Daten, $User, $Pw){  
if(is_login($User, $Pw)){  
 $Error=false;  
 if (!is_file($Datei))
 {  
     $FilePointer=fopen($Datei, 'w+');  
     fclose($FilePointer);  
     chmod($Datei, 0777);
 }  
 $FilePointer=fopen(Datei, 'w');  
   
 if (!$FilePointer) $Error=true;  
 if (!flock($FilePointer, 2)) $Error=true;  
 if (!fwrite($FilePointer, $Daten)) $Error=true;  
 if (!flock($FilePointer, 3)) $Error=true;  
 if (!fclose($FilePointer)) $Error=true;  
 return $Error;
 }

 
function read($file, &$content){  
$Error = false;  
 if(file_exists($file)){  
   $FilePointer = fopen($file, "r");  
   $buffer = filesize($file); 
   $content = fread($FilePointer, $buffer);  
   if(!$FilePointer) $Error = true;  
   if (!flock($FilePointer, 1)) $Error=true;   
   if (!flock($FilePointer, 3)) $Error=true;  
   if(!fclose($FilePointer)) $Error = true;  
 }else{  
   $Error = true;  
  }  
 Return $Error;  
}  

 
function show(){  
  global $file;  
  read($file, $code);  
  echo $code;  
}  

 
if(!isset($_REQUEST['mode'])) $_REQUEST['mode']='';  
switch($_REQUEST['mode']){  
      default:  
              show();  
      break;  

 
      case 'write':  
              write($file, $MyData[0], $MyData[1], $MyData[2]);  
      break;  
}  
?>


und in delphi siehts so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.Button1Click(Sender: TObject);
var Strings: TStringList;
begin
  Strings := TStringList.Create;
  Button1.Enabled := False;
  try
    Strings.Add('mode=write');
    Strings.Add('user='+Edit1.Text);
    Strings.Add('pw='+Edit2.Text);
    Strings.Add(code='+Memo1.Lines.Text);
    try
      HTTP.Post('
http://p-n-c.pytalhost.com/interface.php', Strings);
    except
     on E: Exception do
       showmessage('Error encountered during POST: ' + E.Message);
    end;
  finally
    Strings.Free;
  end;
  Button1.Enabled := True;
  WebBrowser1.Navigate('http://p-n-c.pytalhost.com/interface.php');
end;


und jetzt postet er mir zwar den Memo1 aber wenn ich nochmal was poste überschreibt er es...!!
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Do 15.06.06 11:40 
aber wenn ich das mit inifiles mache, dann muss ich die immer auf den server laden und herunterladen lassen und, um auf den server zu kommen muss ich ja mein passwort angeben und das kann man,was ich gehört habe, aus dem programm herauslesen oder so...

Ich will hier jetzt nicht das a******* spielen, aber mit Kommas, würden sich Deine Beiträge, die ohnehin übelste Schachtelsätze sind, besser lesen und schneller verstehen. Immerhin müssen wir verstehen, was Du von uns willst, also erkläre es, als ob wir nicht wissen, woran Du arbeitest und da machen sich Kommas gut, weil man dann kurze Lesepausen macht.

Schön, dass es jetzt erst deutlich wird, von welcher Sprache wir reden. PHP..aha!!

Es gibt zwei mögliche Fehler:

1. Beim Zugriff auf die Datei wird die Datei neu geschaffen. Dadurch ist dann jeder Eintrag weg.

2. In Zeile 71 erfolgt ein write. Ich habe mit PHP noch nicht mit Textdateien gearbeitet, aber so wie ich PHP verstanden habe, erhält der Parser keinen Befehl für eine nächste Zeile. Ein WriteLn wird es nicht geben. Aber suche doch mal bei Google nach "php arbeiten mit textdateien".

Viel Erfolg!

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
Philipp_Reitter Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 430



BeitragVerfasst: Do 15.06.06 11:46 
wie arbeitest du mit PHP dateien...?
oder wie speicherst du die einträge wenn nicht mit txt files?
ich bin für jede lösung offen....
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Do 15.06.06 11:50 
Ich verwende eine InterBase-Datenbank. Der Zugriff ist recht einfach und das Handling geschieht über SQL-Anweisung. Du kannst auch MySQL verwenden. Ist letztendlich wurscht. Positiev an InterBase-DB's ist, dass man in der Db direkt programmieren kann. Mittels Trigger und Stored Procedures kann man Verarbeitungen in der Db durchführen lassen. Alles was Du willst. Berechnungen, updates, löschen, überprüfen. Du musst eigentlich nur mit einer SQL die Procedure aufrufen und dieser Parameter übergeben. Die Procedure macht den Rest.

Vorteil: Laufzeitänderung möglich, geringer Resourcenverbrauch bei den Clients

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
matze.de
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Do 15.06.06 12:11 
Die Daten werden in der Textdatei immer wieder überschrieben, da dies in dieser Zeile so steht, dass er es machen soll.
$FilePointer=fopen(Datei, 'w');
Das "w" Steht für Write und setzt den Dateizeiger auf den Anfang der Datei, ersetzt du es durch "a" werden die Daten angehangen, er öffnet die Datei und setzt den Dateizeiger auf das Ende der Datei.

mfg matze

_________________
si tacuisses, philosophus mansisses.