php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.09.2009, 23:00  
Neuer Benutzer
 
Registriert seit: 12.09.2009
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Bon_Mori befindet sich auf einem aufstrebenden Ast
Standard Fehlender Leerzeichen bei fread()

Hallo,

ich habe eine .dta Datei gegeben, die ich an einer bestimmten Stelle ändern möchte. Wie die Datei aufgebaut ist und wo welche Zeichen stehen weiß ich mittlerweile, das ist kein Problem.
Eine .dta Datei besteht aus verschiedenen A, C und E-Sätzen, ich möchte nun Satz für Satz einzeln einlesen. Die Sätze sind hintereinander ohne Zeilenumbruch, also komplett in einer Zeile geschrieben, am Anfang eines jeden Satzes steht wie lang derselbige ist. Ziel ist, in den C-Sätzen im Abgleich mit einem Wert in einer Datenbank einen wert zu ändern und die Datei in einer neuen .dta Datei zu speichern.

Nun mein Problem: in den Datensätzen können auch mehrere Leerzeichen hintereinander auftauchen, die bei der Nutzung von fread() zu einem einzigen "zusammengestaucht" werden, z.B. wird aus
"A B (mehrere Leerzeichen) C"
dann einfach
"A B C".
Wie kann ich das verhindern?

Eine Idee von mir wäre, da ich ja den Aufbau des Datensatzes kenne, die Zeichen, bei denen nicht mehr als ein Leerzeichen hintereinander vorkommt, halt mit fread() auszulesen, und halt Stellen, an denen Leerzeichen vorkommen, Zeichen für Zeichen ( mit fgetc()), was ich aber eigentlich nur als letzte Möglichkeit in Betracht ziehe.
Ich hatte auch überlegt den gesamten Inhalt zuerst in einen String einzulesen mit file(), allerdings weiß ich nicht wie groß die .dta Datei wird, bisher habe ich nur Dateien bis 20 kB, allerdings möchte ich das schon möglichst universell machen. Komme ich dann nicht mit file() bzw. dem String irgendwann an eine Grenze bezüglich der Größe des Strings?
Ich hatte auch schon die Idee Zeilenumbrüche nach jedem Satz einzufügen und dann halt fgets() zu verwenden, nur da habe ich auch wieder das Problem, dass wieder Leerzeichen verschwinden.

Habt ihr eine Idee wie da heran gehen könnte bzw. was ein guter Weg wäre die Sätze nacheinander auszulesen?

Geändert von Bon_Mori (12.09.2009 um 23:07 Uhr).
Bon_Mori ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.09.2009, 23:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
die bei der Nutzung von fread() zu einem einzigen "zusammengestaucht" werden
Das wär mir neu. Sicher dass das nicht eher ein Ausgabeeffekt ist?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 13.09.2009, 00:05  
Neuer Benutzer
 
Registriert seit: 12.09.2009
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Bon_Mori befindet sich auf einem aufstrebenden Ast
Standard

Wie könnte ich das überprüfen bzw. woran erkenne ich das? Und wie könnte ich ihn umgehen? Ich werd mal morgen versuchen den String in eine Datei zu schreiben, mal schauen wie viele Leerzeichen er dann abspeichert.
Bon_Mori ist offline  
Alt 13.09.2009, 00:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Was wird denn aktuell mit dem String gemacht? Eine Ausgabe? Dann brauchst Du nur mal in den Browserquelltext sehen. Das ist dann aber kein Fehler, sondern ein html-Feature
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 13.09.2009, 08:45  
Neuer Benutzer
 
Registriert seit: 12.09.2009
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Bon_Mori befindet sich auf einem aufstrebenden Ast
Standard

Der Quelltext dazu sieht folgendermaßen aus:
PHP-Code:
$fp=fopen($dateiname,'r+');
function 
set_modus($datei,$limit)
{        
     
$content="";
     
$content=fread($datei,128);
     echo 
"$content<br>";

also das wären die für den String relevanten Befehle, die Funktion ist noch etwas umfangreicher, da wird aber nichts weiter mit dem String gemacht.

Edit: Es liegt wohl wirklich an der Ausgabe, der String $content ist 128 Zeichen lang und er findet auch einen String der nur aus mehreren Leerzeichen besteht. Wie kann ich den String aber nun anzeigen bzw. warum wird er bei der Anzeige abgeschnitten?

Geändert von Bon_Mori (13.09.2009 um 08:53 Uhr).
Bon_Mori ist offline  
Alt 13.09.2009, 12:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Nochmal:
Zitat:
Das ist dann aber kein Fehler, sondern ein html-Feature
Also mit HTML-Mitteln wie preformatiertem Text oder geschützten Leerzeichen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 13.09.2009, 13:12  
Neuer Benutzer
 
Registriert seit: 12.09.2009
Beiträge: 6
PHP-Kenntnisse:
Anfänger
Bon_Mori befindet sich auf einem aufstrebenden Ast
Standard

Alles klar, danke, habs verstanden, denke ich, zumindest haut es jetzt hin.
Bon_Mori ist offline  
Alt 29.09.2009, 16:50  
Neuer Benutzer
 
Registriert seit: 29.09.2009
Beiträge: 1
PHP-Kenntnisse:
Fortgeschritten
r0m4n befindet sich auf einem aufstrebenden Ast
Standard

Wie sieht n das aus, ich muss grad quasi das selbe machen... is dein script nun fertig und auch funktional? wenn ja, vllt haste ja lust das hier mal anzubieten? waer nice ^^
danke, roman
r0m4n ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Leerzeichen am Ende macht Probleme superskunk Datenbanken 31 20.05.2009 12:48
Elegantere Lösung für Leerzeichen? Mütze PHP Tipps 2009 6 02.02.2009 15:47
Leerzeichen in Dateiverzeichnissen freakymiky PHP Tipps 2008 5 25.11.2008 17:01
Feldname mit Leerzeichen lässt sich nicht verarbeiten TheFlu Datenbanken 8 16.10.2007 23:01
wordwrap und Leerzeichen Zangelo PHP Tipps 2007 6 10.04.2007 21:36
fgets und leerzeichen notyyy PHP Tipps 2006 4 19.02.2006 23:00
leerzeichen moose PHP Tipps 2006 1 24.01.2006 18:54
Leerzeichen mit aus der Datenbank lesen michi174 PHP Tipps 2006 19 21.01.2006 14:10
führendes Leerzeichen löschne spoi PHP Tipps 2006 4 16.01.2006 16:31
HTACCESS - Leerzeichen im Pfad PHP Tipps 2005 5 09.01.2005 12:50
Variable aus Leerzeichen bestehend Ypsillon PHP Tipps 2005 2 05.01.2005 12:25
verdammt,bracuhe sowas mit leerzeichen :D Skazi PHP Tipps 2004 1 20.10.2004 08:32
[Erledigt] Hilfe: Leerzeichen bei SQL-Eintrag über Formular Datenbanken 2 05.09.2004 22:17
Leerzeichen aus DB-Feld werden zu einem zusammengefaßt HTML, Usability und Barrierefreiheit 2 13.08.2004 13:54
leerzeichen in variable... Sclot PHP Tipps 2004 9 04.07.2004 12:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php fread mit zeolenumbruch, leerstellen bei fread, c fread leerzeichen lesen, fread c leerzeichen, c zeilenumbruch fread, sql leerzeichen verschwinden bei &-zeichen, http://www.php.de/php-einsteiger/58991-fehlender-leerzeichen-bei-fread.html, nach c fread kein zeilenumbruch mehr, zeichensatz problem fread

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum