Страница: 1 |
Страница: 1 |
Вопрос: WIN --> DOS
Добавлено: 07.08.08 15:29
Автор вопроса: Feo
Всем привет
Сделал программу , на VB 2005, которая выгружает данные в текстовый файл. Данные должны быть в DOS кодировке.
Подскажите плиз как это сделать.
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 07.08.08 16:06
Код на VB6. На дотнете наверняка есть класс
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
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 07.08.08 21:56
В .NET смотри System.Text.Encoding
Номер ответа: 3
Автор ответа:
Feo
Вопросов: 1
Ответов: 4
Профиль | | #3
Добавлено: 08.08.08 11:05
 im a As String
 im s As String
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
Автор ответа:
Feo
Вопросов: 1
Ответов: 4
Профиль | | #5
Добавлено: 08.08.08 13:34
а смысл гнать то ? )
пишу подробнее :
выгрузка в текстовый файл
все выглядит красиво ( шрифт Terminal)
но вот при просмотре в FARe сплошные кракозябры
Номер ответа: 6
Автор ответа:
Feo
Вопросов: 1
Ответов: 4
Профиль | | #6
Добавлено: 08.08.08 13:52
вот вырезка из программы
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
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 09.08.08 07:51
Блин, ну какой CharToOem? Какое АПИ?
System.IO.File.WriteAllText("c:\dos.txt", "Превед", CyrillicDos)
Номер ответа: 8
Автор ответа:
Feo
Вопросов: 1
Ответов: 4
Профиль | | #8
Добавлено: 11.08.08 11:03
Большое спасибо за помощь !