Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi file_get_contents in delphi? (https://www.delphipraxis.net/155849-file_get_contents-delphi.html)

seppitm 10. Nov 2010 11:35

file_get_contents in delphi?
 
Hallo. wie kann ich eine datei in einen string einlesen wie in PHP?

ich will den String danach base 64 encoden und am besten noch aus der resource laden.

ich habe die datei in der resource wenn es einen direkten weg gibt den Dateiinhalt aus der resource zu laden in einem base64 string, dann würe mit der lieber.

Luckie 10. Nov 2010 11:40

AW: file_get_contents in delphi?
 
Also die Base64 Codierung wirst du wohl selber machen müssen. Aber dafür gibt es schon fertige Funktionen. Laden kannst du eine Textdatei am einfachsten mit einer TStringList. Kann sein, dass sie auch das Laden aus einer Ressource unterstützt. Wenn nicht, wirst du die Ressource erst extrahieren und auf der Festplatte speichern müssen.

himitsu 10. Nov 2010 11:42

AW: file_get_contents in delphi?
 
Welche Delphi-Version nutzt du denn?
Jenachdem gibt es teilweise einige Unterschiede.

TStringList (LoadFromFile) > String
TFileStream > TStringStream > String
TFileStream > manuell in String kopieren
TResourceStream > TStringStream > String
TResourceStream > manuell in String kopieren
uvw.

seppitm 10. Nov 2010 11:52

AW: file_get_contents in delphi?
 
Ich nutze Delphi 2010. Bei der Datei handelt es sich aber um eine binäre datei also es ist ein Bild ich will es damit zu eine data-uri machen.
beispiel: http://www.dopiaza.org/tools/datauri/

Luckie 10. Nov 2010 12:05

AW: file_get_contents in delphi?
 
Und warum redest du dann von einer Textdatei? Eine binäre Datei wirst du nicht gescheit in eine Komponente für Zeichenketten laden können - wie auch.

Nimm einen RessourcenStream und lass deine Base64 Kodierungsfunktion drüberlaufen.

Satty67 10. Nov 2010 12:23

AW: file_get_contents in delphi?
 
Zitat:

Zitat von Luckie (Beitrag 1060743)
Und warum redest du dann von einer Textdatei?

Hat er das? ;)

seppitm 10. Nov 2010 12:40

AW: file_get_contents in delphi?
 
Zitat:

Zitat von Luckie (Beitrag 1060743)
Und warum redest du dann von einer Textdatei? Eine binäre Datei wirst du nicht gescheit in eine Komponente für Zeichenketten laden können - wie auch.

Nimm einen RessourcenStream und lass deine Base64 Kodierungsfunktion drüberlaufen.

Hmm wie mache ich das? kann mir das nicht jemand sagen? ich programmiere normalerweise nur in Java und Delphi ist vollkommen anders

Satty67 10. Nov 2010 12:54

AW: file_get_contents in delphi?
 
Wurde hier schon öfter behandelt, Lucki hat z.B. hier in Post #9 ein Beispielcode gepostet.

Ansonsten mal Suchbegriff Hier im Forum suchenRessourcen probieren, sollte Beispiele zum abschauen liefern.

Luckie 10. Nov 2010 13:20

AW: file_get_contents in delphi?
 
Zitat:

Zitat von Satty67 (Beitrag 1060748)
Zitat:

Zitat von Luckie (Beitrag 1060743)
Und warum redest du dann von einer Textdatei?

Hat er das? ;)

Hat er:
Zitat:

wie kann ich eine datei in einen string einlesen

Satty67 10. Nov 2010 14:07

AW: file_get_contents in delphi?
 
Das ist aber eine unsichere implizite Annahme, bei Zielformat "Delphi-String" die Quell-"Datei" im Text-Format vorauszusetzen ;)

Hoffe der TS hat schon mit den vorherigen Antworten seine Frage beantwortet, nicht das ich mit sowas jetzt die Konstruktivität des Thread "zerstöre"...

seppitm 11. Nov 2010 10:47

AW: file_get_contents in delphi?
 
naja also ums mal genau zu beschreiben das hier ist ein PNG bild:

Zitat:

data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%10 %00%00%00%10%08%06%00%00%00%1F%F3%FFa%00%00%00%04g AMA%00%00%AF%C87%05%8A%E9%00%00%00%19tEXtSoftware% 00Adobe%20ImageReadyq%C9e%3C%00%00%02%9FIDAT8%CB%A 5%93%EBKSa%1C%C7%FD%3Bv%CEvl%03%09dD%21%82%84P%7B% 15%24%12%3B%9A%0D%C5%BC%2CK%D3%DD%BD%D26c%D8L%8B2r %5E%C6H%29-%B3%D4jsNm%EA%D4%E6%D6%942q%D9QB%CC%BD%E9B%B5at%B1 o%E7%EC%C5L%12%23z%E0%0B%0F%0F%CF%E7%F3%7B%AEq%00% E2%FE%27%7F%0C%14%F8%0E%89r%A7%0F%EA%B3%3D%29L%C6% E3%FDa%E9%888%2Cu%252Rg%A2%3E%DD%BEW%B4%AB%20%CF%9 BJ%CB%3C%C9%21%9DG%86%9BA%0B%FA%96%BB%A2%E9%5ClF%8 9%EB%18%24%BDTH%D2C%D1%3B%0A%D8%AAt%E6xR%E4%EA%9C% 11%CE%D5%7E%D8%5E%5E%83i%AE2%1A%AE%EFX%EDC%E3L%15% 0E%D8%F8%91d%1B%9F%DE%26%C8%F1%A4%083%DDI%EB%1C%CC M%AC%09%94%A1%C2_%02%CD%CC%19%E8%D8%94%B3%A9%F6%9D %85%FD%F5%3D%5C%9C%AA%80%D8B%AE%8B%AF%93%C2%98%40% E6N2%A8%C6%B2%A2%959%98%03U%DESPL%17B1U%00%F5T%21% DCk%830x%95p%B0%92%DC%9E%23H%B8B%1Ab%82%8C%111%D3% 19l%865%D8%84%0A_1%94O%E4%2C%98%0F%E5%24%1BO%3E%C6 %DF%B8%C0%B5Pd%0Dm%CF%1Ba%9BkD%7C%3D%C9%C4%04G%ED% 09%1B%0FVn%A36%A0%81%D6%5B%C4%AEd%00%8B%1F%E6%A1%9 A%28%C4%D8%DAP%14%FE%B1%F9%1Dm%CF.%C10Q%8C%BE%60%2 7%04Fb%23%26%90%DC%A76%FA%97%BBa%F4%ABP%EB%D7%E2%D 3%D7%8FQ%E8%FD%97%B71%D82%5B%0F%B5%2B%1Bz%F7i%F4%0 7%3B%20%A8%F9%5D%D0C17%E6%9B%D0%BEp%19%BAI9%CC%BEj D%BE%7D%8E%C2%9B%3F7ayz%01e%CE%2ChXAK%A0%0E%ED%5E3 %A8%2Abk%0B%A9%B7%04%06%F9%40%1A%EC%2BwQ%3D%21%87% DA%7D%12u%D3%E5Xz%B7%80%B6%D9%06%94%0E%1E%87%C2q%0 2%3Ag%0E%EC%AF%BA%91n%3D%0C%AA%92%D8%3A%C4d%2B_%B8 %8F%BD%1A%B3G%83%87%CC%1DT%8E%E6A%3B%9C%03%D5%90%0 CJ%07%17%0E%CE%C6%A3%A5.%18%87%8A%21P%F3%D6%295%21 %DC%F6%90%12%9BH%3A%BE%81%88%98%DCep%B0%92%D6%80%1 9%FA%D1%22%9C%1B%96%A3%95%DD%82%9D%85%F5%CE%22%F0K y%11%16%A6w%7C%CA%7B%1AH%9A2%11%21i%87%04%ED%7E3z_ X%D1%3Bo%85%C5kBZK%2A%04%0A%5E%88R%11%F4%AE%9F%89% 3AO%8A%28%03%A1%A7j%08F%A0%E5%85%05%2A%5E%98%AD%C8 %B0%D1S%A5%84%E8%AF%BF%F1_%F3%0Bg%D0%AC%E5y%BA%D4c %00%00%00%00IEND%AEB%60%82
es ist nicht hexadezimal ... es stehen ja strings dazwischen .... was ist das ? wie bekomme ich sowas mit delphi hin ?
das "data:image/png," gehört nicht dazu nur das danach.

Luckie 11. Nov 2010 12:19

AW: file_get_contents in delphi?
 
Einfach in einen Stream laden und dann Base64 über den Stream laufen lassen.

Und ob das nun lesbare Zeichen sind oder sonst iregndwas hängt von der Interpretation der Daten hab. Vorliegen tun diese Daten nur als Nullen und Einsen. Und ob jetzt 11001110 ein Zeichen oder eine Farbwert eines Pixels ist, hängt ganz von der Interpretation der Anwendung ab. Ein Texteditor wird den Wert als Zeichen interpretieren. Dabei kann natürlich Unsinn bei rauskommen und wenn der Wert als Steuerzeichen interpretiert wird noch mehr Unsinn. Ein Grafikprogramm wird den Wert als Farbwert interpretieren.

Aber du brauchst doch gar keine Interpretation der Daten. Deswegen kannst du sie doch einfach in einen Stream laden und fertig.

himitsu 11. Nov 2010 12:31

AW: file_get_contents in delphi?
 
Das in Beitrag #11 ist nicht Base64 kodiert.
Dort stehen die reinen Binärdaten, in diesem komischen "URLEncode" oder wie das nochmal hieß.

Wenn du dir das verlinkte Format einige Beiträge weiter vorne ansiehst, dann erkennst du, daß am Anfang des "Links" so Einiges steht.

Unter Anderem:

das Protokoll ( data ... ist sowas wie das bekannte http )
der MIME-Type ( z.B. image/png oder text/plain )
beim Text eventuell noch der Zeichensatz (z.B. charset=utf-8 )
und dann die Daten ( hier binär "..." oder eben z.B. BASE-64 kodiert "base64,..." )
> alles schon über : und ; getrennt

Und dann im Anschluß wird der ganze Link nochmal URL-konform kodiert, damit er eben als Link nutzbar ist, wo dann eben Binärdaten dementsprechend verschlüsselt werden, wie du es nun siehst ... Zeichencode eines "bösen" Bytes = %xx


PS: Es gibt dafür Standards, welche man sich vielleicht mal ansehn sollte.
In irgendeiner RFC wird das ganz bestimmt drinstehn.

seppitm 12. Nov 2010 17:35

AW: file_get_contents in delphi?
 
Ich weiß das es nicht Base 64 encodiert ist und das das davor der typ ist weiß ich auch. für meine data uri brauche ich das so wies da stehet und das muss ich dann base 64 encodieren. hmm naja jetzt muss ich nurnoch rausfinden wie ich das hinbekomme aber trotzdem danke für die hilfe

Ryzinski 8. Okt 2012 21:03

AW: file_get_contents in delphi?
 
Use PHP4Delphi and use

http://php.net/manual/en/function.file-get-contents.php

generic 9. Okt 2012 14:10

AW: file_get_contents in delphi?
 
TStringStream gibt es übrigens auch noch.

Sprecht ihr von dem hier?
http://en.wikipedia.org/wiki/Data_URI_scheme
http://de.wikipedia.org/wiki/Data-URL

Thom 9. Okt 2012 15:58

AW: file_get_contents in delphi?
 
Schau Dir mal das Delphi Framework für Google Maps an. Dort sind die beiden Units BrowserTools und Base64 enthalten, die genau das machen, was Du willst: TBitmap, TPNGImage, TGIFImage oder einen beliebigen Stream (Memory, File oder Resource) in einen Base64-kodierten String umwandeln.

nuclearping 10. Okt 2012 02:06

AW: file_get_contents in delphi?
 
Habt ihr mal auf das Datum geschaut? 2010? :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 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