Страницы: 1
RSS
Как записать в txt-файл данные...
 
Подскажите пожалуйста, как записать в txt-файл данные из Textbox1 to Textbox100.    
Причем нужно записать все значения в одну строчку с интервалом 10 символов (от первого предыдущего значения).  
Например: значение Textbox1 в самом начале строки, далее значение Textbox2 записывается через 10 символов вправо от начала строки, далее значение Textbox3 записывается через 20 символов вправо от начала строки, далее значение Textbox4 записывается через 30 символов вправо от начала строки.    
Извините за такое косоязычие в формировании задачи. У меня очень мало опыта, а поставленные задачи нужно решать.  
И еще вопрос: как сделать чтение в таком же виде?
 

Вот это можно взять и разобрать, там есть и запись, и чтение, и текстбоксы: <BR>http://www.planetaexcel.ru/forum.php?thread_id=15152&page_forum=3&allnum_forum=71

 
Может так подойдёт? Я правда не знаток работы с текстовыми файлами  
 
Private Sub CommandButton1_Click()  
   Dim FN As Long, Ctrl As Control, iFileName As String, iPath As String, strText As String  
 
   If MsgBox("Сохранить данные в текстовый файл?", 36, "Сохранение") = vbNo Then Exit Sub  
   FN = FreeFile  
   iFileName = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1) & "_Data"  
 
   iPath = "D:\"    'укажите свой путь  
   On Error Resume Next  
   Open iPath & iFileName & ".txt" For Append As #FN  
   If Err = 75 Then  
       Err.Clear  
       MsgBox "Нет доступа к диску: " & iPath, 48, "Ошибка"  
       Exit Sub  
   End If  
 
   For Each Ctrl In Me.Controls  
       If TypeName(Ctrl) = "TextBox" Then strText = strText & Ctrl.Value & "          "  
   Next Ctrl  
   Print #FN, strText  
   Close #FN  
   MsgBox "Данные сохранены в файл: " & iPath & iFileName & ".txt", 64, "Сохранение"  
End Sub
 
Только тогда уж, чтоб табы соответствовали, так:  
If TypeName(Ctrl) = "TextBox" Then strText = strText & Left(Ctrl.Value & "          ", 10)
 
Чёрт, движок съел самое главное - 10 пробелов в кавычках :)
 
Т.е. съел 9, всего должно быть 10 :)
 
ааа, в моём сообщении тоже ))
 
Насчёт чтения - там в примере по ссылке есть образец, лень переделывать. Вот только Split() вероятно не пойдёт, если возможно слитное написание в строке из двух контролов (например в контроле возможно 10 символов). Тогда наверное извращаться с Mid придётся, типа в цикл по 10 символов выбирать в контролы.
 
За ночь собрал пример :) Цикл по контролам без привязки к номеру (For Each), может есть смысл переделать, как KL подсказал.
 

Здесь есть примеры функций для работы с текстовыми файлами (чтения и записи данных) <BR>http://excelvba.ru/code/txt

 
{quote}{login=Hugo}{date=12.05.2010 09:05}{thema=}{post}За ночь собрал пример :) Цикл по контролам без привязки к номеру (For Each), может есть смысл переделать, как KL подсказал.{/post}{/quote}  
 
Hugo, огромное спасибо за пример. С его помощью у меня все получилось!
 
{quote}{login=EducatedFool}{date=12.05.2010 10:52}{thema=}{post}Здесь есть примеры функций для работы с текстовыми файлами (чтения и записи данных)  
http://excelvba.ru/code/txt{/post}{/quote}  
 
Спасибо за подсказку, очень полезной оказалась...
 
Спасибом делюсь с анонимом, мне лень было весь код самому писать - там половина его, половина из примера по ссылке выше.
Страницы: 1
Читают тему
Наверх
Loading...