30. juni 2003 - 11:24Der er
32 kommentarer og 2 løsninger
ÆØÅ fra DOS til Windows
Hej...
Er der nogle der har lidt kode som går en fil i gennem for æøå, vel og mærke æøå i dos-format, og bytter dem ud med æøå i windows format... Eller er der nogle som kender en kode til at åbne en dos-tekst-fil og så bare konvertere den til windows format..?
' Tegnsætkonvertering ASCII/ANSI Private Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Public Function VBCharToOem(ByVal sInd As String) As String On Error GoTo OnErr CharToOem sInd, sInd VBCharToOem = sInd Exit Function
OnErr: Resume Next End Function
Public Function VBOemToChar(ByVal sInd As String) As String On Error GoTo OnErr OemToChar sInd, sInd VBOemToChar = sInd Exit Function
Du opretter et nyt modul (.bas) og paster teksten mellem <Snip> og </Snip> ind i det.
<Snip> ' Tegnsætkonvertering ASCII/ANSI Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Public Function VBOemToChar(ByVal sInd As String) As String On Error Resume Next OemToChar sInd, sInd VBOemToChar = sInd End Function </Snip>
Herefter kan du bruge det overalt således:
VBOemToChar(Var1)
hvor den returnerede streng er konverteret fra DOS til Windows.
Derefter kopierer du alt mellem <Snip> og </Snip> og sætter ind i kodevinduet i det nye modul. Navnet på det er fløjtende ligegyldigt - bare det kan gemmes uden fejlmeddelelser.
Hmm... Jeg har måske lige glemt at sige jeg sidder med notesblok...
Selve det jeg laver/retter i er et tilføjelses program/modul til et andet program, så jeg sidder bare og skriver i notesblok i en fil (.cbs) som så bliver kørt af det andet program, når det starter op...
Hvorfor F..... (undskyld) bruger du nodepad til at redigere VB kode? Har du ikke adgang til en visual basic? Det er en mil gange nemmere, da du får syntax tjek med løbende. Desuden er der mange andre ting, der håndteres en mil gange bedre i Visual Basic end i notepad.
Næste postning kan du kopiere totalt og sætte ind i en fil og gemme den som EtEllerAndet.bas
' Tegnsætkonvertering ASCII/ANSI Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Public Function VBOemToChar(ByVal sInd As String) As String On Error Resume Next OemToChar sInd, sInd VBOemToChar = sInd End Function
' Tegnsætkonvertering ASCII/ANSI Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Public Function VBOemToChar(ByVal sInd As String) As String On Error Resume Next OemToChar sInd, sInd VBOemToChar = sInd End Function
Jeg har ikke adgang til nogen VB-editor, men det jeg har rettet har kun været småting...
Men så et spm. mere... Hvis jeg nu laver en fil kaldet extrakode.bas og putter det indhold der ind i, hvordan får jeg det så over i den anden fil, altså .cbs'en?
Nu har jeg så gjort det... Men altså den melder fejl... Og det er lige meget om jeg sætter 'Module=modOEM; modOEM.bas' inde i Sub MAIN eller lige før...
"Selve det jeg laver/retter i er et tilføjelses program/modul til et andet program, så jeg sidder bare og skriver i notesblok i en fil (.cbs) som så bliver kørt af det andet program, når det starter op..."
Altså inde i programmet der hedder det 'kør kommando', og den fil jeg retter i det er en som en eller anden prof. har lavet... Men han er på ferie i øjeblikket så nu bliver jeg nødtil selv at prøve... Men altså det er noget script-ting som bliver kørt af det program... Men den der function-ting kan den ikke lægges ind i selve det her script?
Altså i scriptet der er der en sub MAIN, som med mellemrum checker om en fil eksistere... Hvis denne fil så eksistere, så køre den filen igennem og splitter den ved hver komma, disse bliver så til variabler som bliver sat ind i programmet, og den sætte så disse variabler ind i en skabelon, hvorefter der så bliver udskrevet en masse labels... Selve den komma seperede-fil kommer fra concorden C5 (DOS-version)...
Det virker på nær ÆØÅ... Og det er så det jeg vil have til at virke ved at kigge i det script, og så køre alle de variabler i gennem en funktion som erstatter ÆØÅ (DOS) til ÆØÅ (Windows)...
Og altså selve, den der sub MAIN, hvis den finder den fil, så sender starter den en anden sub...
Problemet er declare function ... der indikerer import af en funktion fra en Windows DLL. Det kan Visual Basic. Det kan VBScript ikke.
VBScript har sin egen kategori under Programmering : Script : VBScript I kategorien Programmering : Script kan du se hvilke script-grupper, der er oprettet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.