Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Feenfleisch
Anmeldungsdatum: 11.08.2005 Beiträge: 15
|
Verfasst am: 26.08.2005, 21:05 Titel: dateigröße und stringgröße |
|
|
hallo,
ich möchte eine datei mit get auslesen. problem dabei: ich muss davor eine string variable mir einer bestimmten größe angeben. nun soll der string genau so gross sein, wie die verflickte datei. leider klappt dim a as string *lof (1) nicht. gibt es andere möglichkeit? danke für jede idee.
grüsse, erich |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 26.08.2005, 21:18 Titel: |
|
|
Mach es doch so:
Code: |
' Der Pfadname
datei$ = "c:\test.dat"
' Dateilänge ermitteln
f = freefile
open datei$ for binary as #f: length& = lof(f): close #f
' in BI-Datei schreiben
f = freefile
open "tmp.bi" for output as #f
print #f, "dim inhalt as string * " + str$(length&)
close #f
' und mit include wieder laden
$include 'tmp.bi'
' und löschen
kill "tmp.bi"
' und ursprüngliche Datei wieder laden
f = freefile
open datei$ for binary as #f
get #f, , inhalt
close #f
|
Das sollte eigentlich klappen. Der Trick ist, das die Variable erst während der Laufzeit durch eine externe
BI-Datei definiert wird.
Das sollte klappen, hab's aber nicht getestet.
jb |
|
Nach oben |
|
|
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 26.08.2005, 21:24 Titel: |
|
|
Wird nicht funktionieren, $include ist ein Präprozessor-Befehl, der zur Laufzeit garnicht mehr existiert.
wozu muss der string eigentlich unbedingt mit DIM deklariert werden? _________________
|
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 26.08.2005, 21:28 Titel: |
|
|
versuch mal
Code: | Dim As Integer ff, flen
ff = FreeFile
Open "c:/command.com" For Binary As #ff 'Hier den eigenen Dateiname einsetzen
flen = lof(ff) 'Länge der Datei ermitteln
Dim membuff As String
membuff = Space(flen) 'Speicherbereich anlegen
Get #ff, , membuff 'die ganze Datei in den Arbeitsspeicher laden
Close #ff
Print membuff
Print "verdisch..."
sleep |
Gruß
Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Zuletzt bearbeitet von volta am 26.08.2005, 21:32, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 26.08.2005, 21:30 Titel: |
|
|
Dann halt so:
Code: |
' Der Pfadname
datei$ = "c:\test.dat"
' Dateilänge ermitteln
f = freefile
open datei$ for binary as #f: length& = lof(f): close #f
' in BAS-Datei schreiben
f = freefile
open "tmp.bas" for output as #f
print #f, "datei$ = " + datei$
print #f, "dim inhalt as string * " + str$(length&)
print #f, "f = freefile"
print #f, "open datei$ for binary as #f"
print #f, "get #f, , inhalt"
print #f, "close #f"
[...]
close #f
' und dann starten
chain "tmp.bas"
|
Dann muss man noch das [...] durch seinen eigenen Code ersetzen, der noch folgen soll.
jb |
|
Nach oben |
|
|
Feenfleisch
Anmeldungsdatum: 11.08.2005 Beiträge: 15
|
Verfasst am: 26.08.2005, 21:30 Titel: |
|
|
weil ich mit get nur so viele zeichen lesen kann, wie der string gross ist. |
|
Nach oben |
|
|
Feenfleisch
Anmeldungsdatum: 11.08.2005 Beiträge: 15
|
Verfasst am: 26.08.2005, 21:45 Titel: |
|
|
ich hab mir gerade etwas selber ausgedacht:
open datei$ for binary as #1
platzhalter=lof(1)
dateiinhalt = space(platzhalter)
get #1,,dateiinhalt
close #1 |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 26.08.2005, 21:47 Titel: |
|
|
Aber das hat volta doch schon vorgeschlagen
jb |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 26.08.2005, 21:55 Titel: |
|
|
nicht ganz so @jb,
in meinem Vorschlag war "dateiinhalt" ein String _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 26.08.2005, 21:59 Titel: |
|
|
Aber wie kann man denn einem Zahlentyp space() zuordnen?!
jb |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 26.08.2005, 22:02 Titel: |
|
|
nee, geht nicht
ich sag ja
Zitat: | in meinem Vorschlag war "dateiinhalt" ein String |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 26.08.2005, 22:05 Titel: |
|
|
Dann dürfte sein Code aber nicht funktionieren, oder ?
jb |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 26.08.2005, 22:09 Titel: |
|
|
nur wenn er vorher "dateiinhalt" als String dimensioniert hat. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
Feenfleisch
Anmeldungsdatum: 11.08.2005 Beiträge: 15
|
Verfasst am: 26.08.2005, 22:13 Titel: |
|
|
dateiinhalt ist string, eben so dateiname.
es klappt auch, danke für eure hilfe. |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 26.08.2005, 22:21 Titel: |
|
|
@volta: Ach so, dann ist ja gut
@Feenfleisch: Freut mich, dass es jetzt klappt
jb |
|
Nach oben |
|
|
|