Страница: 1 |
Вопрос: WIN --> DOS | Добавлено: 07.08.08 15:29 |
Автор вопроса: ![]() |
Всем привет
Сделал программу , на VB 2005, которая выгружает данные в текстовый файл. Данные должны быть в DOS кодировке. Подскажите плиз как это сделать. |
Ответы | Всего ответов: 8 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 07.08.08 16:06 |
Код на VB6. На дотнете наверняка есть класс ![]() Private Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Private Sub Form_Load() Dim a As String Dim s As String a = InputBox("Source", , "Просто строка" ![]() s = Space(Len ![]() Call CharToOem(a, s) MsgBox "result:" & vbNewLine & s End Sub |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #2 | Добавлено: 07.08.08 21:56 |
В .NET смотри System.Text.Encoding |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #3 | Добавлено: 08.08.08 11:05 |
Private Sub Form_Load()
![]() ![]() a = InputBox("Source", , "Просто строка" ![]() s = Space(Len ![]() Call CharToOem(a, s) MsgBox "result:" & vbNewLine & s End Sub на MsgBox действительно строка в DOS кодировке, но вот в файле строки получаются кракозябрами не DOS и не WIN кодировка (( |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 08.08.08 12:47 |
не гони. все нормально получается, я проверял. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #5 | Добавлено: 08.08.08 13:34 |
а смысл гнать то ? )
пишу подробнее : выгрузка в текстовый файл все выглядит красиво ( шрифт Terminal) но вот при просмотре в FARe сплошные кракозябры |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #6 | Добавлено: 08.08.08 13:52 |
вот вырезка из программы
Imports System.IO
Public Class Form1 Private Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long Private StrokaVivod As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim a As String = "Пробная строка" Dim s As String Dim FileName As String = "C:\Test.txt" s = Space(Len ![]() Call CharToOem(a, s) StrokaVivod = s CreateFile(FileName) WriteFile(FileName) End Sub Private Sub CreateFile(ByVal FileName As String) Dim fs As FileStream = File.Create(FileName) fs.Close() End Sub Private Sub WriteFile(ByVal FileName As String) Dim fs As New FileInfo(FileName) Dim StreamWriter As StreamWriter = fs.AppendText StreamWriter.WriteLine(StrokaVivod) StreamWriter.Flush() StreamWriter.Close() End Sub End Class |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #7 | Добавлено: 09.08.08 07:51 |
Блин, ну какой CharToOem? Какое АПИ?
Dim CyrillicDos = System.Text.Encoding.GetEncoding(866)
System.IO.File.WriteAllText("c:\dos.txt", "Превед", CyrillicDos) |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 4 |
Профиль | Цитата | #8 | Добавлено: 11.08.08 11:03 |
Большое спасибо за помощь ! |
Страница: 1 |
|