Aktuelle Zeit: 18.05.2013 08:44

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Scintilla SETTEXT
BeitragVerfasst: 19.11.2010 17:49 
Offline

Registriert: 14.05.2010 15:53
Wohnort: daheim
Hallo,

heute habe ich festgestellt, das unter Windows einige Dateien bei mienem Editor nicht geöffnet werden (im Sinne von: Inhalt wird nicht angezeigt), mein Vater vermutet, es hängt mit irgendwelchen Zeichen zusammen, die veranlassen, dass so ein Befehl wie ClearScreen ausgeführt wird, also nichts mehr im ScintillaGadget steht. Gut, Dateien überprüft, allerdings habe ich die ja selbst mit meinem Editor erstellt, also kann es eigentlich wohl kaum sein, dass die nicht geöffnet werden. Das passiert mir jedoch nur unter Windows, und auch nur bei einzelnen Dateien. Das einzige, was die gemeinsam haben ist:
- Sie liegen auf dem gleichen Laufwerk (USB-Stick)
- Es sind Konfigurationsdateien.
Woran könnte das liegen?
Ich benutze Scintillahelper (SCI_LoadFile)

MfG
Markus

P.S: ts-soft, bitte auf die Signatur schauen!

_________________
Bild
Bild
Die täglich beförderte Datenmenge des Internets beträgt 415 Petabyte oder 445.602.856.960 Megabyte!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Scintilla SETTEXT
BeitragVerfasst: 19.11.2010 18:05 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
mbuettner hat geschrieben:
P.S: ts-soft, bitte auf die Signatur schauen!

Was nützt das, wenn trotzdem alle erforderlichen Infos fehlen :mrgreen:
Wo sind die Dateien, wo der Source? Es sind überhaupt keine Infos vorhanden :freak:

Du suchst wohl schon wieder:
Bild

Ich finde es zwar nett, das Du uns das Hellsehen zutraust, aber bei den meisten ist dies nicht der Fall.

Gruß
Thomas

PS: Ich vermute mal, in dem nicht vorhandenem Source fehlt ein CloseFile()

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 14 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Scintilla SETTEXT
BeitragVerfasst: 19.11.2010 21:12 
Offline

Registriert: 19.09.2007 22:18
Da fehlt in der Tat einiges an Informationen. Ich werfe deswegen einfach mal mit ein paar Stichworten um mich:
Unicode, Ascii, BOM, CloseFile(), ReadFile()=0, ABCDEF ...

_________________
"Ich habe aus Spontanität den Thread arbeiten lassen - er bietet kein deutliches Fundament." — Alexi (aka. cOoki3druqs)
"ich hogffe ihr könnt den fehle endecken" — Marvin133
"Ideoten gibts ..." — computerfreak


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Scintilla SETTEXT
BeitragVerfasst: 19.11.2010 21:46 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Ich hab in ähnlich s Probl m. Hab in Dat i g öffn t, in hin ingpackt und wi d r g schloss n. J tzt v rmiss ich m in


// edit
hat sich erledigt, hab mein e wiedergefunden.

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 14 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Scintilla SETTEXT
BeitragVerfasst: 20.11.2010 02:05 
Offline
Benutzeravatar

Registriert: 27.10.2007 14:30
Wohnort: Kölle
:lol: H h h h !

//edit: fehlendes i entdeckt...

_________________
PB 4.51
Vista 32 Business

"Coden ist wie zum Psychoklempner gehn...manchmal muss man einfach drüber reden..." (PureBuster)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Scintilla SETTEXT
BeitragVerfasst: 20.11.2010 12:55 
Offline

Registriert: 14.05.2010 15:53
Wohnort: daheim
@ts-soft:
mbuettner hat geschrieben:
Ich benutze Scintillahelper (SCI_LoadFile)

Sagt das nicht schon fast alles aus? Nachdem das ganze Lesen von Scintillahelper übernommen wird, habe ich damit nichts am Hut. Hier vielleicht noch die Prozedur, wo SCI_LoadFile aufgerufen wird:
Code:
Procedure OFile(file.s, fileid.l)
  ReDim paths(fileid)           
  paths(fileid) = GetPathPart(file)
  ReDim files(fileid)           
  files(fileid) = GetFilePart(file)
  AddGadgetItem(0,CountGadgetItems(0),GetFilePart(file),ImageID(100))
  ScintillaGadget(100 + fileid,0,0,WindowWidth(0)-5,WindowHeight(0)-95,#Null)
  If SCI_LoadFile(100 + fileid,file) = #True
    ScintillaSendMessage(100+fileid,#SCI_SETSAVEPOINT)
    ScintillaSendMessages(100+fileid,LineWrapping)
    ProcedureReturn #True
  Else
    ProcedureReturn #False
  EndIf
EndProcedure

Und für alle, die Scintillahelper nicht benutzen:
Code:
Procedure SCI_LoadFile(ID, FileName.s)
  Protected FF, Format, length, *mem, Text.s
 
  FF = ReadFile(#PB_Any, FileName)
  If FF
    Select ReadStringFormat(FF)
      ; hier wird das StringFormat ermittelt und entsprechend gleich die Codepage eingestellt
      Case #PB_Unicode
        Format = #PB_Unicode
        ScintillaSendMessage(ID, #SCI_SETCODEPAGE, 65001)
      Case #PB_UTF8
        Format = #PB_UTF8
        ScintillaSendMessage(ID, #SCI_SETCODEPAGE, #SC_CP_UTF8)
      Default
        Format = #PB_Ascii
        ScintillaSendMessage(ID, #SCI_SETCODEPAGE, 0)
    EndSelect
    length = Lof(FF)
    If length
      *mem = AllocateMemory(length)
      If *mem
        If ReadData(FF, *mem, length)
          Text = PeekS(*mem, length, Format)
          If SCI_SetGadgetText(ID, Text.s)
            FreeMemory(*mem)
            CloseFile(FF)
            ProcedureReturn #True
          EndIf
        Else
          MessageRequester(#Name,"Can't read data!")
        EndIf
      EndIf
    EndIf
    CloseFile(FF)
  EndIf
EndProcedure


MfG
Markus

_________________
Bild
Bild
Die täglich beförderte Datenmenge des Internets beträgt 415 Petabyte oder 445.602.856.960 Megabyte!


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Scintilla SETTEXT
BeitragVerfasst: 21.11.2010 00:41 
Offline
CodeCommander
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Eigentlich habe ich die Lösung schon angedeutet, trotz mangelnder Infos, aber hier nochmal:
Code:
Define.s File = GetTemporaryDirectory() + "test.txt"

If CreateFile(0, File)
  WriteStringN(0, "hallo test")
  CloseFile(0)
 
  If OpenFile(1, File)
    Debug ReadString(1)
    If Not ReadFile(2, File)
      Debug File + " konnte nicht geöffnet werden, da in Benutzung"
    EndIf
  EndIf
EndIf

Kann natürlich auch ein fremdes Programm sein, das die Dateien geöffnet hat. Manche
Programme haben ihre Konfigurations-Dateien auch solange offen, bis sie beendet werden.

Nächstes mal bitte einen ausführbaren Code und keine einzelnen Proceduren oder Schnippsel,
die sind meist unnütz. Die Dateien, welche nicht geladen werden als Download wäre auch
sinnvoll.

Erst nachdenken, welche Infos bräucht jemand anders um das Problem nachzuvollziehen und
wie stelle ich Ihm diese so zur Verfügung, das er möglichst keine Arbeit damit hat.

Gruß
Thomas

_________________
PureBasic 5.11 | Windows 7 SP1 (x64) | Linux Mint 14 (x64) | RealSource
Bild
Der CodeCommander, der seine Finger sowohl von Windows 8, wie auch dem Monitor lässt!


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye