AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi SCHNELL: Erste 100 Zeichen aus Textdatei lesen
Thema durchsuchen
Ansicht
Themen-Optionen

SCHNELL: Erste 100 Zeichen aus Textdatei lesen

Ein Thema von PeterPanino · begonnen am 23. Okt 2012 · letzter Beitrag vom 25. Okt 2012
Antwort Antwort
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#1

AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen

  Alt 24. Okt 2012, 23:12
was Shima meinte war wohl

len := SR.ReadBlock(@Result[1], 0, X); Ich hatte eine identische Antwort fertig, habe sie aber nicht abgeschickt, da es bei mir nicht zuverlässig zum laufen kam, war abhängig vom Encoding der Datei und seltsamerweise auch vom Inhalt, irgendetwas an TStreamreader ist da etwas Voodoo.
Willst Du einen Binärvergleich fahren oder geht es nur um Textdateien (in einheitlicher Codierung) ?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen

  Alt 24. Okt 2012, 23:39
was Shima meinte war wohl

len := SR.ReadBlock(@Result[1], 0, X); Ich hatte eine identische Antwort fertig, habe sie aber nicht abgeschickt, da es bei mir nicht zuverlässig zum laufen kam, war abhängig vom Encoding der Datei und seltsamerweise auch vom Inhalt, irgendetwas an TStreamreader ist da etwas Voodoo.
Willst Du einen Binärvergleich fahren oder geht es nur um Textdateien (in einheitlicher Codierung) ?
Es geht nur um Textdateien, aber das Encoding kann je nach Anwendersystem wohl unterschiedlich sein. Ich werde mich deshalb nicht mit TStreamReader Voodoo herumschlagen, sondern mal die Variante von Aphton ausprobieren. Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen

  Alt 25. Okt 2012, 12:04
OK Leute...

OLD SCHOOL

Delphi-Quellcode:
Procedure Schnell;
Var
  Buffer : array[0..99] of byte;
  F : file;
  gelesen : Integer;
begin
  AssignFile(F,'Cool.txt');
  reset(F,1);
  Blockread(F,Buffer[0]),100,gelesen);
  Closefile(F);
  if gelesen = 100 then
   begin
     bla;
   end;
end;
Würde sagen NIX ist schneller!

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen

  Alt 25. Okt 2012, 12:31
Naja auch wenn ich diese Lösung (mit Stream) bevorzugen würde, so ganz richtig wäre sie nicht.
Die Aufgabenstellung lautet die ersten 100 Zeichen, und das sind unter XE ja wohl 16Bit Chars also ein buffer : array[0..199] of Byte; beim Auslesen müßte dann bestimmt werden ob es sich um eine 8 oder 16 Bit -Codierung handelt.
Aus den ersten 100 Zeichen im Ergebnis einen String zu machen, kann ja funktionieren aber ist auf jeden Fall riskant.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: SCHNELL: Erste 100 Zeichen aus Textdatei lesen

  Alt 25. Okt 2012, 12:37
Die Aufgabenstellung lautet die ersten 100 Zeichen, und das sind unter XE ja wohl 16Bit Chars ...
Nee, das hat mit der Delphi-Version nichts zu tun, sondern wird von der vorliegenden Datei bestimmt
Somit können die ersten 100 Zeichen mal 100 Bytes sein, mal 200 oder in Zukunft evtl. sogar noch mehr.

Problematisch ist die zuverlässige Erkennung, welche Codierung für die Textdatei verwendet wurde und kein BOM (in der Textdatei) existiert, dann muss man raten.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz