Textdatei als db

vinc5nt

Erfahrenes Mitglied
Hi
Sagt mal ist es möglich die daten einer *.txt/*.dat datei (die als db dient) von unten nach oben auszulesen ?

also wenn meine text datei so aus sieht :

d,d,d,d
c,c,c,c
b,b,b,b
a,a,a,a


und wenn man dann per explode glaub ich die komma zum unterteilen der zeilen als arrays ausliest (die auch vorher so eingegeben wurden) ,die datei wie folg ausgeben kann

a a a a
b b b b
c c c c
d d d d

oder ist es da besser / möglich die datei mit anhängen schon vorher zu beschreiebn

usw
b,b,b,b
a,a,a,a

... es ist doch richtig dass wenn man in eine txt datei etwas speiechert die daten automatisch von oben eingetragen und ausgelsen werden oder ?
kann man jedoch auch unten den neuen eintrag einfügen also nicht in die oberste sondern in die unterste zeile ?

oder gibt es eine möglichkeit beim auslesen von unten zu beginnen und sich dann zur obersten zeile hoch zulesen ? ich weiß dass man mit einem befelh (fällt mir gerade nit ein :) ) an zeilen etwas anhängen kann, doch kann man auch zeilen anhängen ?

Vielen Dank ! :) ich hoffe man konnte verstehen was ich meinte ;)
 
Du brauchst nicht sortieren... Wenn Du Daten an eine Textdatei schreibst (append = anhängen) werden die Daten hinten angefügt, nicht vorne. Die Datei ist also schon in der von Dir gewünschten Reihenfolge. Ausgelesen wird dann natürlich (automatisch) von Oben nach Unten.

Natürlich nur, wenn ich die Frage richtig verstanden habe ;)

Greetz,
Storm
 
@TimeFlashdie frage war nicht flasch verstanden :) die frage war nur ne multiple oder doppel frage :)
das was dem link stand hab ich nicht kappiert ... wie müsste die funktion denn aussehen wenn ich von unten nach oben lesen wollte .. wird da überhaupt ne funktion benötigt ?

@DaSilentStorm
PHP:
$fp = fopen("*.txt","a");
meinst du das so ? ... ich dachte immer das er dann an eine Zeile etwas ranhängen würde ? also bräuchte ich jetzt nur alle 'r's in 'a's umwandeln :) ?
das wär ja spitze wenn das funzt :)

@beide VIELEN DANK für die flotte hilfestellung
 
Auslesen

<?

$fcontents= file("daten.txt");
$c = count($fcontents);



for ($i = 0 ;$i = $c; $i++,$c = $c - 1)
{
$eintrag = str_replace(" ","",$fcontents[$c]);
{
$pieces = explode("#",$eintrag);
?>
Name : <? echo "$pieces[0]";?>
<br>
Email :<? echo "$pieces[1]";?>
<br>
Dein Eintrag :<? "$pieces[2]"; }}?>
<br>
<br>
?>

So hab da schnell ein bsp mit explode geschrieben hoffe das hilft da cya nucle
 
was genau willst du denn damit machen ?

Das was ich dir geschrieben habe liest immer den neuesten eintrag.
trotzdem speichert er immer den neuesten eintrag am schluss.
zb
bla bla , 20:10
bla2 bla2 ,21:10 -> nimmt er den eintrag zuerst dann den oberen etc
----------------CODE ZUM SPEICHERN -----------

<?php

$fp = fopen("daten.txt","a+");

$data = "a,a,a,a \r\n";

fputs($fp,$data);

fclose($fp);

?>


Meinst das ?
 
Zuletzt bearbeitet:
ich wollte ein news sys in ein members verwaltungs system umwandeln, dass problem ist jedoch dass das news system immer den zu letzt eingetragen beitrag an oberster stelle anzeigt und in die db.txt einfügt.
Beim members system brauch ich jedoch den zu erst eingtragenen an oberster stelle : (leader) :) und dann die daruaf folgenden Members nach eintritts zeitpunkt.

da code zum eintragen vom news sys sieht so aus
PHP:
  function save($datei, $eintragen) 
  { 
    $fp = fopen($datei, "a");
    fwrite($fp, $eintragen); 
    fclose($fp); 
  } 

  if($name&&$msn&&$icq&&$aufgabe&&real)
  { 
   if ($passwort == $pw)
      {
    $message = "<center><font face=\"Verdana, Arial, sans-serif\" size=\"2\">mems wurden hinzugef&uuml;gt!</font></center>";
    $cmid = time();
        $datei = fopen("./kommentare/$cmid.dat", "w+");
        fclose($datei);
    if(!file_exists("./news.dat")) save("./news.dat",""); 
    $line = file("./news.dat"); 
    $line[0] = $name.",".$real.",".$msn.",".$icq.",".$aufgabe.",".$cmid."\n".$line[0];
    save("./news.dat",implode("",$line));
      }
aus gelesen werde die daten dann in einer *.tbl als entry[vars] .. wie immer das auch funzt :)

irgendwie hab ich da keine peilung deshalb bin ich am überlegen ob ich villeicht ein ganzes script selbst schreiben sollte ,leider weiß ich aber nicht wie ich vom aufbau an die sache rangehen müsste und wie ich das mit den variabeln auslesen machen könnte in einer *.tbl z.b.

hast du ne idee :) ?
 
jedoch dass das news system immer den zu letzt eingetragen beitrag an oberster stelle anzeigt und in die db.txt einfügt.

Also du willst das der zuletzt eingetragene am ende der txt datei steht? Is auch kein problem dann lasst einfach das zälhen (forSchleife) des inhaltes weg dann fangt er mit dem ersten eintrag an und nicht mit den zuletzt gespeicherten
 
Zurück