![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() |
![]() Open Befehl:
Und zwarr wenn ich ein File öffen, wie zB ein mp3 file mit den Befehl: Get nr, X$, s$ Buffer(i) = s$ X$ = X$ + 1024 mit x=1024 geh ich davon aus, dass in der ersten zeile 1024 zeichen vorhanden sind, im texteditor wirds auch so angezeigt x$ ist der anfang von wo ich lese s$ ist die variable, wo der Inhalt hingespeichert wird nr ist 1024 dh wenn x$=1 dann soll er die ersten 1024 Zeichen in die Var. s$ speichern, aber wenn in dem file dann ein Zeichen vorhanden ist, dass sagt, dass jetzt die neue Zeile kommt, dann speichert er die ersten zeichen ist zu diesem Zeichen in die Var ab, aber nicht die darauffolgenden. wie kann ich dass ausbessern? ich möchte, dass die ersten 1024 zeichen in s$ abgespeichert werden, und nicht die ersten paar zeichen
____________________________________
http://www.schmausen.at Dein Infoportal für Mittagsmenüs in Klagenfurt |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 13.09.2001
Beiträge: 83
|
![]() irgendwie verstehe ich deine Ausführung bzw. Code nicht ganz...
warum ist zB 'X' bei dir ein String? Wie hast du das File geöffnet (Random, Binary)? Egal, vielleicht hilft dir der beigefügte VB-Code (ich hoffe, die Formatierungen bleiben erhalten) ... Dim FileNbr As Integer Dim SourceFile As String Dim Data As String Dim DataByte As String Dim BlockSize As Long Dim i As Integer FileNbr = FreeFile BlockSize = 1024 SourceFile = "c:\winnt\keyhh.exe" ' die einzulesende Datei Open SourceFile For Binary As FileNbr Do Until EOF(FileNbr) Or LOF(FileNbr) = Loc(FileNbr) 'Datenstring zurücksetzen Data = "" ' Gibt's überhaupt noch 'BLOCKSIZE' Bytes zu lesen? If LOF(FileNbr) - Loc(FileNbr) < BlockSize Then ' nein, Die Größe des Data-String muß also angepaßt werden Data = String(LOF(FileNbr) - Loc(FileNbr), 0) Else ' es gibt noch mindestens BLOCKSIZE Bytes zu lesen Data = String(BlockSize, 0) End If Get FileNbr, , Data ' Die gelesenen Daten auf Debug.Print schreiben For i = 1 To Len(Data) DataByte = Mid(Data, i, 1) ' Handelt es sich um ein Sonderzeichen? If Asc(DataByte) < 32 Then ' ja, es wird ein '.' ausgegeben Debug.Print "."; Else ' nein, es kann direkt das Zeichen ausgegeben werden Debug.Print DataByte; End If Next i Debug.Print Loop ... |
![]() |
![]() |
![]() |
#3 |
Jr. Member
![]() Registriert seit: 13.09.2001
Beiträge: 83
|
![]() wie ich sehe sind die Formatierungen weg. Musst also selber einrücken.
|
![]() |
![]() |
![]() |
#4 |
Inventar
![]() |
![]() @ReiniBugman wennst das nächste mal den tag [code] verwendest bleibn die formatierungen erhalten
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet |
![]() |
![]() |
![]() |
#5 |
Master
![]() |
![]() hmm ja danke, alles schön und gut, aber ich will das jetzt weder im debug noch in einem textfeld ausgeben, sondern will das in eine variable speichern. ich hab da mal statt debug.print mp3=mp3 & DataByte eingegeben, aber bei einen bestimmten asc zeichen bricht er eingach ab in die variable zu schreiben, i glaub das zeichen ist ASC 12
____________________________________
http://www.schmausen.at Dein Infoportal für Mittagsmenüs in Klagenfurt |
![]() |
![]() |
![]() |
#6 | |
Veteran
![]() Registriert seit: 07.01.2002
Alter: 44
Beiträge: 268
|
![]() Zitat:
mp3 ist ein string, das "&"-zeichen verknüpft 2 strings miteinander... da isses doch klar, dass du eine fehlermeldung bekommst, da in einem string nicht alle "werte" drinnstehn können. öffne die datei mit: Code:
Open "meinmp3.mp3" For Binary Access Read As #1 Code:
Dim mp3(die größe vom mp3) As Byte solltest du bestimmte stellen in mp3 als string haben wollen, geht das so: Code:
dim i as integer dim str as string for i = anfang to ende str = str & chr(mp3(i)) next |
|
![]() |
![]() |
![]() |
#7 |
Jr. Member
![]() Registriert seit: 13.09.2001
Beiträge: 83
|
![]() Speicher dir das ganze doch in einem Byte-array, wie groß der sein muß weißt du ja durch die Filegröße.
Vielleicht wird ja einfach nur die maximale Stringlänge überschritten. Die liegt bei VB6 zwar bei 2^31 aber vielleicht sind deine mp3's ja noch größer. |
![]() |
![]() |
![]() |
#8 |
Master
![]() |
![]() HI!
Wenn du das ganze File einlesen willst gehts am leichtersten und am schnellsten so: Code:
Dim lFileSize as Long Dim File() as Binary lFileSize = FileLen("MeinFile.mp3") Redim File(lFileSize) Open "MeinFile.mp3" for Binary as #1 get #1,,File close #1
____________________________________
__________________ |»»»»»SONIC««««««| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|