1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

PHP Absätze-Problem :-/

    • Frage
  • owaye
  • 8. November 2006 um 00:11
  • Unerledigt
  • owaye
    6
    owaye
    Mitglied
    Reaktionen
    3
    Punkte
    313
    Beiträge
    46
    • 8. November 2006 um 00:11
    • #1

    hi hab ein kleines problemchen mit php, und würde mich freuen wenn mir jemand helfen könnte :engel: :
    also ich lese aus einer Textdatei jede Zeile ein, wo in jeder Zeile eine Mengenformel drinsteht wie A (B): C x D und wandele sie dann im php Code um und gebe sie anschliessend aus in der Commandline in der Form A (B) -> {C,D}. Der Code funktioniert an sich ja, jedoch sieht die Ausgabe so aus:

    A (B) -> { C,D
    }

    Das Problem ist auf den ersten Blick nicht erkennbar, dennoch macht es mir Kopfzerbrechen: also
    1. mal der Abstand zwischen den beiden Klammern, der dürfte nicht vorhanden sein.
    2. Die geschlossene Klammer ist in der nächsten Zeile.
    3. wenn ich das Umgewandelte Ergebnis in einer neuen Textdatei ausgebe hab ich für das Absatzzeichen (\n) ein komisches Viereck stehen.

    hier der Code:

    PHP
    <?php
    
    
    $fp = fopen("Eingabe.txt","r");
    $fp2 = fopen("Ausgabe.txt","w");
    
    
    if($fp)
    {
    	while(!feof($fp))
    	{
    		$zeile = fgets($fp,100);
    		print $zeile; //nur für Commandline Ausgabe
    
    		$zt = explode(":",$zeile);
    		$cat = str_replace(" x ",",",$zt[1]);
    		$ausgabe = "$zt[0] -> \173$cat\175\n";
    		print $ausgabe; //nur für Commandline Ausgabe
    		//fputs($fp2,"$ausgabe");
    	}
    	fclose($fp);
    	fclose($fp2);
    }
    else 
    echo "EingabeDatei nicht gefunden";
    
    
    ?>
    Alles anzeigen

    Bin mal gespannt.. wahrscheinlich sind das eh nur Fuzzelfehler :-|

  • Wings-of-Glory
    28
    Wings-of-Glory
    Mitglied
    Reaktionen
    105
    Punkte
    8.305
    Beiträge
    1.573
    • 8. November 2006 um 00:30
    • #2

    falls du das file in windows öffnest, versuchs mit wordpad statt mit notepad zu öffnen, dann sollten die zeilenumbrüche richtig angezeigt werden.

    für den rest bin ich jetzt zu müde, um mir den code genau anzuschauen.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • JohannesBuchner
    7
    JohannesBuchner
    Mitglied
    Punkte
    455
    Beiträge
    90
    • 8. November 2006 um 02:01
    • #3

    fgets liest mit abschließenden zeilenumbruch, mach ein rtrim drum rum.

    It's like the square root of one million ... no one will ever know.

  • owaye
    6
    owaye
    Mitglied
    Reaktionen
    3
    Punkte
    313
    Beiträge
    46
    • 8. November 2006 um 10:01
    • #4

    @wings of glory: oke das kästchenproblem wird tatsächlich nur im notepad angezeigt, in der CL macht er brav den Absatz^^

    johannes: ah, gut zu wissen, das werd ich gleich ma ausprobieren.
    Thx mal!

  • owaye
    6
    owaye
    Mitglied
    Reaktionen
    3
    Punkte
    313
    Beiträge
    46
    • 8. November 2006 um 14:05
    • #5

    hmm oke, die ausgabe sieht jetzt zufriedenstellenderweise so aus, nachdem ich es in trim() gepackt hab :-):

    A (B) -> {C,D}
    -> {}

    Offensichtlich wird aber zum Schluss noch irgendeine leere zeile eingelesen :distur:. Hat dazu jemand vielleicht auf die schnelle eine Abhilfe noch?

    edit: gelöst: ein
    if(feof($fp)) { return null; } hats erledigt. Thx alle für die hilfen.

  • Marky
    6
    Marky
    Mitglied
    Punkte
    310
    Beiträge
    59
    • 8. November 2006 um 14:13
    • #6

    Per If-Konstrukt

    PHP
    if($zt[0] && $cat)
        $ausgabe = [...]
  • Plantschkuh!
    24
    Plantschkuh!
    Mitglied
    Reaktionen
    163
    Punkte
    6.173
    Beiträge
    1.181
    • 8. November 2006 um 15:27
    • #7
    Zitat von owaye
    Code
    $ausgabe = "$zt[0] -> \173$cat\175\n";


    Ich hab ja mit PHP überhaupt nichts am Hut, aber... kann man da echt keine geschwungenen Klammern in Stringkonstanten verwenden, oder wozu die oktalen Konstanten?

    *plantsch*

  • MarvinTheRobot
    26
    MarvinTheRobot
    Mitglied
    Reaktionen
    53
    Punkte
    7.308
    Beiträge
    1.368
    • 8. November 2006 um 15:52
    • #8

    $meins="{".$cat."}";

    $ausgabe = "$zt[0] -> $meins\n";

    sollt ja auch gehn. überhaupt wozu ein " am anfang der zeile "ausgabe"? ich brauch "" immer nur für strings aber nicht wenn ich variablen ausgeben will.... sprich $ausgabe = $zt[0]." -> ".$meins."\n"; sollts auch tun oder?

    Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders!
    http://www.chuckbronson.net/

  • Marky
    6
    Marky
    Mitglied
    Punkte
    310
    Beiträge
    59
    • 8. November 2006 um 16:19
    • #9

    Die Variante mit den String-Operatoren is meiner meinung nach auch schöner. Ohne erspart man sich halt Schreibarbeit...

    Das mit den oktalen Werten für die Klammern versteh ich auch nicht ganz, sollte normal eigentlich keine Probleme geben.

  • owaye
    6
    owaye
    Mitglied
    Reaktionen
    3
    Punkte
    313
    Beiträge
    46
    • 8. November 2006 um 19:54
    • #10

    richtig, ich weiss auch nicht, hab irgendwie gedacht, dass das zu sonderzeichen gehört und ich eine "umschriebung" dazu brauch. fazit: mit oktalen werten gehts auch, aber als string natürlich auch, ich hab halt bissl rumprobiert und da dann beides funktioniert hab ich mir gedacht.... is eh wurscht welches von beiden.

    weil ich die variablen teilweise auch in "" geschrieben habe. muss natürlich auch nicht sein, funktioniert aber auch^^

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung