Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Inforeferat (https://www.delphipraxis.net/172587-inforeferat.html)

Bummi 12. Jan 2013 20:22

AW: Inforeferat
 
Eine Bytefolge gehört nicht in einen String sondern in einen Stream,
eine Array of Byte oder ähnliches.
Ich war gedanklich allerdings bei LZW hängengeblieben, sorry.
Für RLE macht es natürlich Sinn nur auf die Bilddaten zuzugreifen. Da würde dann wieder der Verweis auf Scanline greifen, die Triple/QuadArrays lesen, mit letzt gelesenem vergleichen und Zähler und Array direkt wieder in einen Stream schreiben.
Falls es doch in Richtung LZW gehen sollte:
Lesen kannst Du so eine Datei z.B. in einen MemoryStream und über MemoryStream.Memory wahlfrei zugreifen. Du könntest aber auch einfach per FileStream Byte für Byte einlesen.
Für die Generierung der Tabellen wirst Du Verwaltungsstrukturen, gegf. in Form von Arrays benötigen.

p80286 13. Jan 2013 00:13

AW: Inforeferat
 
3 Jahre und kein Byte?
Das klint für mich als hättest Du zuerst die binomischen Formeln gelernt ohne das kleine 1x1 zu kennen.
Ein Byte ist die kleinste Informationseinheit. Sie wird mit 8 Bit dargestellt. Ein Bit hat den Wert 0 oder Eins. Ein Byte kann somit Werte von 0 bis 2^8 -1 annehmen.
ird das höchste Bit als Vorzeichen interpretiert, dan reicht der Wertebereich von -127 bis 127. Ein Byte kann auch als (Ansi-)Char interpretiert werden. Davon dan mehrere hintereinander sind ein string oder ein Array of Char.

Gruß
K-H

Valle 13. Jan 2013 00:23

AW: Inforeferat
 
Ich glaube du interpretierst da etwas zu viel in die Aussage rein.

Ich hatte auch knapp drei Jahre Informatik und wir haben überhaupt nichts sinnvolles gelernt. Streams oder byteweiser Zugriff auf Dateien? Nä. Wir fangen jetzt an "HTML zu programmieren". Erwarte nicht zu viel von Informatik in der Schule. Bei manchen Themen wäre es sogar besser gewesen, wenn wir sie gar nicht erst behandelt hätten...

Liebe Grüße,
Valentin

p80286 13. Jan 2013 00:27

AW: Inforeferat
 
Du willst mich veräppeln??

Gruß
K-H

Valle 13. Jan 2013 01:42

AW: Inforeferat
 
Zitat:

Zitat von p80286 (Beitrag 1198841)
Du willst mich veräppeln??

Ähm, nein? Mein Post war (zur Ausnahme ;-) ) völlig frei von Ironie oder ähnlichem.

Ist dir irgendwas davon jetzt wirklich neu? Ich dachte mittlerweile hätte sich sowas hier rumgesprochen.

Liebe Grüße,
Valentin

Furtbichler 13. Jan 2013 09:08

AW: Inforeferat
 
Ich glaube, es geht nicht um die Güte des Informatik-Unterrichts in Schulen, sondern um das Referat.

Ich würde das auch nicht auf eine Datei anwenden, denn es geht im Referat nicht unbedingt um den Zugriff auf Dateien. Natürlich wäre es schick, als Essenz des Referates ein kleines Komprimierungsprogramm vorzuweisen, aber imho wäre das ein wenig viel für den Anfang.

Du kannst auf verschiedene Arten auf eine byteweise auf eine Datei zugreifen. Hier mal die Stichwörter: TFileStream (modern) per 'File Of Byte (Uralt, Einzige Möglichkeit des Ur-Pascal)' oder per 'File/BlockRead (alte Methode)'. Google mal nach diesen Stichwörtern.

sx2008 13. Jan 2013 10:01

AW: Inforeferat
 
Zitat:

Zitat von Fehlersucher (Beitrag 1198803)
Kryptographie und Steganographie hatten wir schon so im Unterricht und fallen damit weg.

Na dann würde ich doch eher eine Simulation programmieren.
Zum Beispiel eine Wärmesimulation.
http://www.youtube.com/watch?v=TvlIfSlLB0c
Ein Array aus 100 * 100 Kacheln wobei jede Kachel eine Temperatur hat die durch die Farbe angezeigt wird.
Per Mausklick werden ein oder mehrere Kacheln erhitzt und das Programm errechnet wie sich die Wärme verteilt.
Die Berechnung ist eigentlich ziemlich einfach.
Delphi-Quellcode:
Temp_neu := Temp_alt + Summe(Temperaturdifferenz zum Nachbarn) * Faktor;
Jede Kachel hat max 8 Nachbarn.
Man kann die Berechnung noch verfeinern, indem die diagonalen Nachbarn einen kleineren Faktor bekommen als die horizontalen und vertikalen Nachbarn.
Man benötigt zwei Arrays, die man jeweils im Wechsel für die alten und neuen Temperaturen benützt.

Fehlersucher 13. Jan 2013 11:24

AW: Inforeferat
 
Zitat:

Zitat von sx2008 (Beitrag 1198859)
Zitat:

Zitat von Fehlersucher (Beitrag 1198803)
Kryptographie und Steganographie hatten wir schon so im Unterricht und fallen damit weg.

Na dann würde ich doch eher eine Simulation programmieren.
Zum Beispiel eine Wärmesimulation.
http://www.youtube.com/watch?v=TvlIfSlLB0c
Ein Array aus 100 * 100 Kacheln wobei jede Kachel eine Temperatur hat die durch die Farbe angezeigt wird.
Per Mausklick werden ein oder mehrere Kacheln erhitzt und das Programm errechnet wie sich die Wärme verteilt.
Die Berechnung ist eigentlich ziemlich einfach.
Delphi-Quellcode:
Temp_neu := Temp_alt + Summe(Temperaturdifferenz zum Nachbarn) * Faktor;
Jede Kachel hat max 8 Nachbarn.
Man kann die Berechnung noch verfeinern, indem die diagonalen Nachbarn einen kleineren Faktor bekommen als die horizontalen und vertikalen Nachbarn.
Man benötigt zwei Arrays, die man jeweils im Wechsel für die alten und neuen Temperaturen benützt.

Auch ein interessantes Thema.
Würdest du die Kacheln durch ein StringGrid darstellen und dann die Berechnung bei dem OnClick setzen?
Wie würdest du den Temperaturen die Farben (flüssig) zuweisen?

Noch einmal zu RLE:
RLE lohnt sich doch soweit ich weiß nicht nur für Bilder, sondern auch für Text.

Hat jemand von euch einen Ansatz für eine Routine, welche die Bytes einer beliebigen Datei in einen Stream schreibt?

DeddyH 13. Jan 2013 11:27

AW: Inforeferat
 
TMemoryStream.LoadFromFile

Sir Rufo 13. Jan 2013 16:34

AW: Inforeferat
 
Mal eine ganz doofe Frage:

Zitat:

Zitat von Fehlersucher (Beitrag 1198803)
Steganographie hatten wir schon so im Unterricht

Zitat:

Zitat von Fehlersucher (Beitrag 1198822)
Wir haben aber nie über Bytes gesprochen, geschweige denn, wie man diese aus Dateien herausquetscht.

Kann man Steganographie behandeln ohne mit den Bytes in Berührung zu kommen? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 Uhr.
Seite 2 von 3     12 3      

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