2013-04-13 2 views
0

Я пытаюсь написать программу, которая берет данные из файла доступа, а затем я могу нажать кнопку и создать ярлык в текстовом файле для него. Прямо сейчас, если я нажму кнопку, чтобы создать ярлык для более одного, он отобразит только последний, который выбран. Я думаю, мне нужен цикл для всех outfile.write's, я просто не уверен, какой цикл использовать. Это не дает мне никаких ошибок или чего-то еще, он просто не печатает больше одного ярлыка в этот текстовый файл. Кроме того, как мне помещать пробелы между именами людей и фамилии, так как они находятся в одной строке? Это мой код до сих пор.Новое программирование на VB и необходимость совета

Imports System.IO 

Public Class frmAccess 
    Dim outFile As StreamWriter 

    Private Sub TblMemberBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TblMemberBindingNavigatorSaveItem.Click 
     Me.Validate() 
     Me.TblMemberBindingSource.EndEdit() 
     Me.TableAdapterManager.UpdateAll(Me.GolfDataSet) 

    End Sub 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     'TODO: This line of code loads data into the 'GolfDataSet.tblMember' table. You can move, or remove it, as needed. 
     Me.TblMemberTableAdapter.Fill(Me.GolfDataSet.tblMember) 



    End Sub 


    Private Sub cmdCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCreate.Click 
     Dim outFile As StreamWriter 
     outFile = File.CreateText("Labels.txt") 

     outFile.WriteLine() 
     outFile.WriteLine() 
     outFile.Write(lblFirst.Text, " ") 
     outFile.WriteLine(lblLast.Text) 
     outFile.WriteLine(lblAddress.Text, " ") 
     outFile.Write(lblCity.Text, ", ") 
     outFile.Write(lblState.Text, " ") 
     outFile.Write(lblZip.Text) 
     outFile.WriteLine() 
     outFile.Close() 

    End Sub 

    Private Sub cmdExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExit.Click 

     Me.Close() 

    End Sub 
End Class 

Например, мой текстовый файл должен выглядеть (ххх = пустые строки):

хххх

ххххх

Боб Смит

123 Fix Дорога

Tampa, Florida 12345

хххххх

хххххх

хххххх

Jane Doe

+987 помощь Lane

Denver, Colorado 56789

ххххх

ххххх

Таким образом, вместо текстового файла, показывающего обе метки, он будет показывать только ярлык Джейн Доу.

+0

вы хотите добавить все Контрактный текст в текстовом файле ? – Sathish

+0

Да. Предполагается, что вы должны показать ярлык, который вы бы наложили на конверт для отправки кому-то. Но предположим, что более одного раза больше, если я нажму кнопку «Создать» еще раз. И прямо сейчас это только показывает информацию последнего раза, когда я ударил кнопку create, а не все из них. –

+0

Вы получаете правильное решение? – Sathish

ответ

0

вы можете использовать следующую

Private Sub cmdCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCreate.Click 
    Dim outFile As StreamWriter 
    outFile = File.CreateText("Labels.txt") 

    outFile.WriteLine() 
    outFile.WriteLine() 
    outFile.Write(lblFirst.Text & " ") 
    outFile.WriteLine(lblLast.Text) 
    outFile.WriteLine(lblAddress.Text & " ") 
    outFile.Write(lblCity.Text & " " & ", ") 
    outFile.Write(lblState.Text & " ") 
    outFile.Write(lblZip.Text) 
    outFile.WriteLine() 
    outFile.Close() 

End Sub 
0

Для пространства вы можете использовать метод Strings.Space (numOfSpaces), возможно, его можно привязать к переменной firstname перед записью в файл. Что касается исходного вопроса, я не понимаю, что именно у вас спрашивает приятеля ... может у вас перефразировать? Также надеюсь, что у вратаря связать любые текстовые поля

+0

Я набрал пример того, как должен выглядеть мой текстовый файл, но вместо того, чтобы показывать более одного «ярлыка», он показывает только последний. –

+0

, так что даже если вы хотите отобразить первую запись, она отображает последний только справа? – Manny265

+0

Способ, которым вы напишете этот текстовый файл, даст проблемы при извлечении ... из моего представления.Можете ли вы попытаться записать одну запись в одной строке и использовать разделитель, такой как # или $ или, или *, а затем при извлечении u может хранить один раз запись в массиве, как одну целую строку, но для извлечения возможно первое имя только для использования разделитель, чтобы показать, где заканчивается один столбец (для этой записи, т.е. кортежа). – Manny265

0

Попробуйте этот код для отображения все имени и адреса

Private Sub cmdCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCreate.Click 

Dim outFile As StreamWriter 
     If File.Exists("D:\sathish\Labels.txt") Then 
      outFile = New StreamWriter("Labels.txt", True) 
     Else 
      outFile = New StreamWriter("Labels.txt") 
     End If 


     outFile.WriteLine() 
    outFile.WriteLine() 
    outFile.Write(lblFirst.Text & " ") 
    outFile.WriteLine(lblLast.Text) 
    outFile.WriteLine(lblAddress.Text & " ") 
    outFile.Write(lblCity.Text & " " & ", ") 
    outFile.Write(lblState.Text & " ") 
    outFile.Write(lblZip.Text) 
    outFile.WriteLine() 
    outFile.Close() 

End Sub 
Смежные вопросы