Avatar billede regurger Nybegynder
18. oktober 2000 - 09:27 Der er 4 kommentarer og
1 løsning

Konvertering af OEM tekst til ANSI

Kan man fra WSH indlæse en OEM-tekst fil (gammel DOS tekst) og få konverteret det indlæste til ANSI- eller Unicode-tekst?

Jeg har set at Win32-API kaldet BCSToUni() burde kunne gøre dette, men jeg ved ikke hvordan man kalder Win32-API funktioner fra WSH...

Jeg skal konvertere OEM-tekst fra både engelsk, fransk og tysk til brug på en hjemmeside, så manuel konvertering af de tegn der er forskellige fra ANSI charsettet er ikke en mulighed.

Forslag?
Avatar billede davsclaus Nybegynder
21. oktober 2000 - 12:41 #1
Der må da findes nogle små util programmer som kan foretage en sådan konv.

Ellers hvis WSH ikke tillader kald til den metode du har fundet i API\'et BCSToUni() så kan du jo foretage kaldet via et programmeringssprog, som
- C++
- Delphi
Avatar billede regurger Nybegynder
21. oktober 2000 - 13:44 #2
Ja, jeg kan jo lave en EXE-fil der laver konverteringen for mig. EXE-filen kunne så kaldes fra scriptet, men det pæneste ville nu være at holde al koden i selve scriptet.

En mulighed var vel at lave et COM-objekt i C++ der der så kan benyttes fra scriptet... men det kræver jeg sætter mig ind i COM-programmering :(
Avatar billede stringbuffer Nybegynder
28. november 2000 - 01:08 #3
COM er bøvet, men hvis du bruger ATL kan du forholdsvis nemt lave et lille komponent, som måske kun har den ene funktion. du kan bruge forskellige konverteringsfunktioner/makroer fra biblioteket <atlconv.h>

. o O ( mon ikke man alligevel skal have prøvet COM før eller siden )
Avatar billede mr_clark Nybegynder
09. oktober 2001 - 12:58 #4
Såvidt jeg ved er der ikke mulighed for at kalde det API i VBS. Du skal kunne instantiate det som et objekt, ellers er det et no-go.
Avatar billede jumper Nybegynder
25. oktober 2001 - 17:39 #5
Brug DynaWrap/DynaCall, så kan du kalde Win32-API funktioner fra WSH/VBS/JS/din browser/whatever ;o)

http://ourworld.compuserve.com/homepages/Guenter_Born/WSHBazaar/WSHDynaCall.htm

Hvis du f.eks. ville kalde SetCursorPos funktionen i USER32.DLL fra JScript, kunne det se sådan her ud:

var wrap = new ActiveXObject(\"DynamicWrapper\");
wrap.Register(\"user32.dll\",\"SetCursorPos\",\"i=uu\",\"f=S8\",\"r=l\")
var result = wrap.SetCursorPos(100,0);

Voila, musen bevæger sig :D

/Thor
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester