AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Welches Zeichen Könnte eine neue Zeile sein?
Thema durchsuchen
Ansicht
Themen-Optionen

Welches Zeichen Könnte eine neue Zeile sein?

Ein Thema von Pseudemys Nelsoni · begonnen am 20. Sep 2004 · letzter Beitrag vom 21. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#11

Re: Welches Zeichen Könnte eine neue Zeile sein?

  Alt 20. Sep 2004, 01:57
Zitat von Muetze1:
Was ist, wenn der Server nach Unix Art kein #10#13 sendet sondern nur ein #13 ? Dann greift kein einziger deiner Codes und durch das Add kommt ein 2. Zeilenvorschub hinzu...
Da brauch für ihn doch nichts greifen, da er ja auf #13 hinaus will - er mach aus #10 'ne #13 und aus #13#13 (also auch aus #10#13) ebenfalls 'ne #13

PS: ich hab's auch schon erlebst, das nu #10 vorhanden war *kotz*



Das ist 'ne alte Funktion von mir, welche eigentlich alle möglichen Variationen erkennen und in #10#13 umwandeln sollte (hatte jedenfall noch keine Probleme)
Ich weiß zwar, daß der bytweise Zugriff nicht ideal ist, aber ich verwende das so selten, das sich ein Umbeu für mich noch nicht gelohnt hat , allerdings hab ich mir damit das Verschieben, beim Einfügen und Löschen, der nachfolgenden Bytes erspart
Delphi-Quellcode:
Procedure Aendern(Datei: String);
  Var Datei1, Datei2: File of Byte;
    CR, LF, B, Ba: Byte;
    S: String;

  Begin
    S := AnsiLowerCase(ExtractFileExt(Datei));
    If (S <> '.htm') and (S <> '.html') and (S <> '.css') and
      (S <> '.js') and (S <> '.cgi') and (S <> '.txt') and (S <> '.php') Then Exit;
    AssignFile(Datei1, Datei); Reset(Datei1);
    AssignFile(Datei2, Datei + '.tmp'); Rewrite(Datei2);
    CR := 13; //Carriage Return
    LF := 10; //Line Feed
    Ba := 255;
    While not EoF(Datei1) do Begin
      Read(Datei1, B);
      If (B <> LF) and (Ba = CR) Then Write(Datei2, LF);
      Write(Datei2, B);
      Ba := B;
    End;
    CloseFile(Datei2);
    CloseFile(Datei1);
    DeleteFile(Datei);
    RenameFile(Datei + '.tmp', Datei);
  End;
hab mir jetzt auch mal AdjustLineBreaks angesehn (kannte ich noch nicht), aber für meine zwecke ist das auch nicht immer so hilfreich -.-
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: Welches Zeichen Könnte eine neue Zeile sein?

  Alt 20. Sep 2004, 09:52
Code:
    while pos(#13, Queue) <> 0 do
    begin
      line := copy(Queue, 1, pos(#13, Queue)-1);
      delete(Queue, 1, pos(#13, Queue)+1); //<-- +1
      MEMO1.LINES.ADD(line);
    end;
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#13

Re: Welches Zeichen Könnte eine neue Zeile sein?

  Alt 20. Sep 2004, 15:56
moin mütze,

wieso +1? eine #10 ist da janichtmehr hinter (die schleifen löschen das), oder ist da sonstnoch was hinter?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#14

Re: Welches Zeichen Könnte eine neue Zeile sein?

  Alt 20. Sep 2004, 16:06
Moin!

Weil Pos() dir die Position des Zeichens #13 gibt und Delete aber die Anzahl der Zeichen haben will. Und wenn du das gefundene #13 Zeichen mit weglöschen willst, dann +1, ansonsten bleibt es drinne (wird nicht gelöscht) und du erhälst durch dieses Zeichen eine leere Zeile.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#15

Re: Welches Zeichen Könnte eine neue Zeile sein?

  Alt 20. Sep 2004, 16:19
Moin,

mh, aber wenn Pos() die position von #13 zurückgibt, dann habe ich doch exakt die länge oder?

wenn #13 z.b an poition 60 ist, dann muss ich 60 zeichen löschen. ich teste es aber trotzdem mal , kurz


EDIT: mh, ich hab irgendwie immernoch die leerzeilen drinnen, selbst wenn ich +5 usw teste, das ist dann doch komisch oder <g>
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#16

Re: Welches Zeichen Könnte eine neue Zeile sein?

  Alt 21. Sep 2004, 13:56
Ich hab mal meinen Code (von oben) auf 'nen String umgebastelt.
Versuchs mal damit.

Mir ist aber aufgefallen, das dieses noch mein alter Code ist ... da muß wohl beim letzten Crash doch irgenwas durcheinander gekommen sein da muß ich wohl mal suchen, wo das Neuere ist, hatte kurz davor die Erkennung für die Zeilenumbrüche verbessert, da diese Version ein kleines Problem mit 'ner bestimmten CR-LF-Kombination hat -.-

Delphi-Quellcode:
Var S, S2: String;
  Ca: Char;

Begin
  S := Queue;

  S2 := '';
  Ca := #FF;
  While S > 'do Begin
    If (S[1] <> #10) and (Ca = #13) Then S2 := S2 + #10 + S[1] Else S2 := S2 + S[1];
    Ca := S[1];
    Delete(S, 1, 1);
  End;
  Memo1.Lines.Text := S2;
End;
(ungetestet)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz