Avatar billede m-koldsgaard Nybegynder
30. juni 2003 - 14:31 Der er 13 kommentarer og
2 løsninger

ÆØÅ fra DOS til Windows

http://www.eksperten.dk/spm/370808

... Læs og forstå...
Avatar billede m-koldsgaard Nybegynder
30. juni 2003 - 14:34 #1
Forresten det er en Win98...
Avatar billede Chewie Novice
30. juni 2003 - 14:51 #2
Luk dette spm og LÆS REGLERNE
Avatar billede Chewie Novice
30. juni 2003 - 14:52 #3
Avatar billede eagleeye Praktikant
30. juni 2003 - 18:00 #4
Du må ikke oprette samme spørgsmål inden for 7 dage, se regel 2.1.11
Så luk dette ved selv at svare og acceptere dit svar.

http://www.eksperten.dk/regler.phtml

... Læs og forstå...


eagleeye / CoAdmin
Avatar billede arne_v Ekspert
30. juni 2003 - 21:22 #5
Øh.

Er det ikke 370808 han skal lukke og lade dette her blive åbent ?

Han fik jo at vide at spørgsmålet skulle flyttes fra VB til VBScript !
Avatar billede m-koldsgaard Nybegynder
30. juni 2003 - 22:56 #6
Ja, efter hvad jeg har forstået er det så ikke det gamle spm. der skal lukkes?
Avatar billede eagleeye Praktikant
30. juni 2003 - 22:59 #7
Ja du kan også lukke det gamel.
eagleeye / CoAdmin
Avatar billede m-koldsgaard Nybegynder
01. juli 2003 - 08:30 #8
Sådan... Men øh... Er der overhoved nogle der vil kigge forbi i dette spm. nu?
Avatar billede arne_v Ekspert
01. juli 2003 - 08:34 #9
Hvis ikke andre vil så skal jeg lave en løsning i aften.
Avatar billede arne_v Ekspert
01. juli 2003 - 23:11 #10
Først skal du gøre dig klart at der er ikke *et* DOS karakter-sæt - der er
mange.

Det mest udbredte er nok Code Page 850. Jeg har prøvet at lave noget
kode til at konvertere fra Code Page 850 til ISO-8859-1 (Windows). Jeg regner
med at du selv har styr på fil ind og ud. Hvis ikke så skriv, så bixer jeg
noget sammen. Hvis det f.eks. er CP 865 og ikke 850 du har så skriv også -
jeg har også en 865 konvertering.

Nedenstående er muligvis det værste skod kode der længe er set
(jeg koder meget i C/C++/Java men ikke ret meget i VB og det her er
en konvertering fra noget C kode).

Men her kommer det (der er 4 linier test funktion i bunden):

Option Compare Database

Function from_cp850(s As String) As String
  Dim res As String
  Dim v, v2 As Integer
  For i = 1 To Len(s)
      v = Asc(Mid(s, i, 1))
      Select Case v
        Case 0
            v2 = 0
        Case 1
            v2 = 1
        Case 2
            v2 = 2
        Case 3
            v2 = 3
        Case 4
            v2 = 4
        Case 5
            v2 = 5
        Case 6
            v2 = 6
        Case 7
            v2 = 7
        Case 8
            v2 = 8
        Case 9
            v2 = 9
        Case 10
            v2 = 10
        Case 11
            v2 = 11
        Case 12
            v2 = 12
        Case 13
            v2 = 13
        Case 14
            v2 = 14
        Case 15
            v2 = 15
        Case 16
            v2 = 16
        Case 17
            v2 = 17
        Case 18
            v2 = 18
        Case 19
            v2 = 19
        Case 20
            v2 = 20
        Case 21
            v2 = 21
        Case 22
            v2 = 22
        Case 23
            v2 = 23
        Case 24
            v2 = 24
        Case 25
            v2 = 25
        Case 26
            v2 = 26
        Case 27
            v2 = 27
        Case 28
            v2 = 28
        Case 29
            v2 = 29
        Case 30
            v2 = 30
        Case 31
            v2 = 31
        Case 32
            v2 = 32
        Case 33
            v2 = 33
        Case 34
            v2 = 34
        Case 35
            v2 = 35
        Case 36
            v2 = 36
        Case 37
            v2 = 37
        Case 38
            v2 = 38
        Case 39
            v2 = 39
        Case 40
            v2 = 40
        Case 41
            v2 = 41
        Case 42
            v2 = 42
        Case 43
            v2 = 43
        Case 44
            v2 = 44
        Case 45
            v2 = 45
        Case 46
            v2 = 46
        Case 47
            v2 = 47
        Case 48
            v2 = 48
        Case 49
            v2 = 49
        Case 50
            v2 = 50
        Case 51
            v2 = 51
        Case 52
            v2 = 52
        Case 53
            v2 = 53
        Case 54
            v2 = 54
        Case 55
            v2 = 55
        Case 56
            v2 = 56
        Case 57
            v2 = 57
        Case 58
            v2 = 58
        Case 59
            v2 = 59
        Case 60
            v2 = 60
        Case 61
            v2 = 61
        Case 62
            v2 = 62
        Case 63
            v2 = 63
        Case 64
            v2 = 64
        Case 65
            v2 = 65
        Case 66
            v2 = 66
        Case 67
            v2 = 67
        Case 68
            v2 = 68
        Case 69
            v2 = 69
        Case 70
            v2 = 70
        Case 71
            v2 = 71
        Case 72
            v2 = 72
        Case 73
            v2 = 73
        Case 74
            v2 = 74
        Case 75
            v2 = 75
        Case 76
            v2 = 76
        Case 77
            v2 = 77
        Case 78
            v2 = 78
        Case 79
            v2 = 79
        Case 80
            v2 = 80
        Case 81
            v2 = 81
        Case 82
            v2 = 82
        Case 83
            v2 = 83
        Case 84
            v2 = 84
        Case 85
            v2 = 85
        Case 86
            v2 = 86
        Case 87
            v2 = 87
        Case 88
            v2 = 88
        Case 89
            v2 = 89
        Case 90
            v2 = 90
        Case 91
            v2 = 91
        Case 92
            v2 = 92
        Case 93
            v2 = 93
        Case 94
            v2 = 94
        Case 95
            v2 = 95
        Case 96
            v2 = 96
        Case 97
            v2 = 97
        Case 98
            v2 = 98
        Case 99
            v2 = 99
        Case 100
            v2 = 100
        Case 101
            v2 = 101
        Case 102
            v2 = 102
        Case 103
            v2 = 103
        Case 104
            v2 = 104
        Case 105
            v2 = 105
        Case 106
            v2 = 106
        Case 107
            v2 = 107
        Case 108
            v2 = 108
        Case 109
            v2 = 109
        Case 110
            v2 = 110
        Case 111
            v2 = 111
        Case 112
            v2 = 112
        Case 113
            v2 = 113
        Case 114
            v2 = 114
        Case 115
            v2 = 115
        Case 116
            v2 = 116
        Case 117
            v2 = 117
        Case 118
            v2 = 118
        Case 119
            v2 = 119
        Case 120
            v2 = 120
        Case 121
            v2 = 121
        Case 122
            v2 = 122
        Case 123
            v2 = 123
        Case 124
            v2 = 124
        Case 125
            v2 = 125
        Case 126
            v2 = 126
        Case 127
            v2 = 127
        Case 128
            v2 = 199
        Case 129
            v2 = 252
        Case 130
            v2 = 233
        Case 131
            v2 = 226
        Case 132
            v2 = 228
        Case 133
            v2 = 224
        Case 134
            v2 = 229
        Case 135
            v2 = 231
        Case 136
            v2 = 234
        Case 137
            v2 = 235
        Case 138
            v2 = 232
        Case 139
            v2 = 239
        Case 140
            v2 = 238
        Case 141
            v2 = 236
        Case 142
            v2 = 196
        Case 143
            v2 = 197
        Case 144
            v2 = 201
        Case 145
            v2 = 230
        Case 146
            v2 = 198
        Case 147
            v2 = 244
        Case 148
            v2 = 246
        Case 149
            v2 = 242
        Case 150
            v2 = 251
        Case 151
            v2 = 249
        Case 152
            v2 = 255
        Case 153
            v2 = 214
        Case 154
            v2 = 220
        Case 155
            v2 = 248
        Case 156
            v2 = 163
        Case 157
            v2 = 216
        Case 158
            v2 = 215
        Case 159
            v2 = 0
        Case 160
            v2 = 225
        Case 161
            v2 = 237
        Case 162
            v2 = 243
        Case 163
            v2 = 250
        Case 164
            v2 = 241
        Case 165
            v2 = 209
        Case 166
            v2 = 170
        Case 167
            v2 = 186
        Case 168
            v2 = 191
        Case 169
            v2 = 174
        Case 170
            v2 = 172
        Case 171
            v2 = 189
        Case 172
            v2 = 188
        Case 173
            v2 = 161
        Case 174
            v2 = 171
        Case 175
            v2 = 187
        Case 176
            v2 = 0
        Case 177
            v2 = 0
        Case 178
            v2 = 0
        Case 179
            v2 = 0
        Case 180
            v2 = 0
        Case 181
            v2 = 193
        Case 182
            v2 = 194
        Case 183
            v2 = 192
        Case 184
            v2 = 169
        Case 185
            v2 = 0
        Case 186
            v2 = 0
        Case 187
            v2 = 0
        Case 188
            v2 = 0
        Case 189
            v2 = 162
        Case 190
            v2 = 165
        Case 191
            v2 = 0
        Case 192
            v2 = 0
        Case 193
            v2 = 0
        Case 194
            v2 = 0
        Case 195
            v2 = 0
        Case 196
            v2 = 0
        Case 197
            v2 = 0
        Case 198
            v2 = 227
        Case 199
            v2 = 195
        Case 200
            v2 = 0
        Case 201
            v2 = 0
        Case 202
            v2 = 0
        Case 203
            v2 = 0
        Case 204
            v2 = 0
        Case 205
            v2 = 0
        Case 206
            v2 = 0
        Case 207
            v2 = 164
        Case 208
            v2 = 240
        Case 209
            v2 = 208
        Case 210
            v2 = 202
        Case 211
            v2 = 203
        Case 212
            v2 = 200
        Case 213
            v2 = 0
        Case 214
            v2 = 205
        Case 215
            v2 = 206
        Case 216
            v2 = 207
        Case 217
            v2 = 0
        Case 218
            v2 = 0
        Case 219
            v2 = 0
        Case 220
            v2 = 0
        Case 221
            v2 = 166
        Case 222
            v2 = 204
        Case 223
            v2 = 0
        Case 224
            v2 = 211
        Case 225
            v2 = 223
        Case 226
            v2 = 212
        Case 227
            v2 = 210
        Case 228
            v2 = 245
        Case 229
            v2 = 213
        Case 230
            v2 = 181
        Case 231
            v2 = 222
        Case 232
            v2 = 254
        Case 233
            v2 = 218
        Case 234
            v2 = 219
        Case 235
            v2 = 217
        Case 236
            v2 = 253
        Case 237
            v2 = 221
        Case 238
            v2 = 175
        Case 239
            v2 = 180
        Case 240
            v2 = 173
        Case 241
            v2 = 177
        Case 242
            v2 = 0
        Case 243
            v2 = 190
        Case 244
            v2 = 182
        Case 245
            v2 = 167
        Case 246
            v2 = 247
        Case 247
            v2 = 184
        Case 248
            v2 = 176
        Case 249
            v2 = 168
        Case 250
            v2 = 183
        Case 251
            v2 = 185
        Case 252
            v2 = 179
        Case 253
            v2 = 178
        Case 254
            v2 = 0
        Case 255
            v2 = 0
      End Select
      res = res & Chr(v2)
  Next i
  from_cp850 = res
End Function

Function test()
  MsgBox from_cp850("abc")
  MsgBox from_cp850("‘›†")
End Function
Avatar billede m-koldsgaard Nybegynder
09. juli 2003 - 11:17 #11
Hmm... Det virker sq heller ikke...

Fejl:
Syntax error: End of statement expected, i.e. end of line, ':', Else. at line 41

Og line 41 er:
For i = 1 To Len(s)
Avatar billede m-koldsgaard Nybegynder
13. juli 2003 - 12:04 #12
Glem min sidste kommentar...

Det var ikke 'For i = 1 To Len(s)' der var linie 41, det var 'Select Case v', og den script-fortolker kan åbenbart ikke tage Select Case... Så nu har jeg lavet en masse Elseif'er... Og det virker også næsten...

Tegne bliver bare ikke oversat rigtig...

Jeg har taget disse tegn direkte fra eksport-filen:
MsgBox koldsgaard("‘†") 'æØå (der blev ikke eksporteret et lille ø)
Og af disse tegn er det kun Ø der bliver rigtig...
Avatar billede arne_v Ekspert
13. juli 2003 - 12:14 #13
Jeg havde nhelt glemt dette spørgsmål.

Ved du om de filer er i codepage 850 eller 865 ?
Avatar billede m-koldsgaard Nybegynder
14. juli 2003 - 11:21 #14
Har selv fundet ud af det...

Jeg tror at filerne var i 437... Men hvorfor har jeg ingen anelsen om... Altså selve programmet Concorde C5, ligger på en nt server, som havde 437, men selve programmet blev kørt fra win98-maskiner med 850... Selvom jeg ændrede nt-serverens codepage til 850 eller 865 skete der ingen ændringer...

Men jeg lave en lille funktion i mit script, sårn at jeg kunne tage et tegn fra den eksporterede fil og så få tegn-koden... Og så lavede jeg mine egne 'oversættelser'...

Så lige nu har jeg kun oversat æøåÆØÅê° da de er de eneste tegn der skal oversættes... (Dvs. jeg har hvertfald ikke oplevet at der har været problemer med andre tegn)

Skal vi ikke dele point'sne?
Avatar billede arne_v Ekspert
14. juli 2003 - 11:51 #15
Jeg takker.
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
Kurser inden for grundlæggende programmering

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