Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 3
1

Изменить формат даты

09.04.2013, 01:01. Показов 4537. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем, прошу помощи!

Каждая строка текстового файла содержит дату в формате "mm-dd-yyyy", где mm - месяц, dd - день, yyyy - год. Записать в новый файл только те строки исходного текстового файла, которые содержат корректно заданные даты, изменив их формат на "dd.mm.yy", где yy - две последние цифры года.

Вот задание.

Было аналогичное для данных, вводимых в текстбоксы

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Private Sub obrabotka(ByVal mm As String, ByVal dd As String, ByVal yyyy As String)
        Dim flag As Integer
        Dim str1, str2, oshibka As String
        If ((CInt(mm) < 1) Or CInt(mm) > 12) Or ((CInt(dd) < 1) Or (CInt(dd) > 31)) Or (CInt(yyyy) < 1) Then flag = 1
        oshibka = "Дата неверна"
        str1 = mm & "-" & dd & "-" & yyyy
        If (flag = 1) Or (Len(str1) > 10) Then str1 = oshibka 'проверка верности даты
        vivod(str1, TextBox4)
        If str1 <> oshibka Then
            str1 = Mid(str1, 4, 2) & "-" & Mid(str1, 1, 2) & "-" & Mid(str1, 7, 4)    'переставляем поля местами
            str2 = str1.Remove(6, 2)
            vivod(str2, TextBox5)
        End If
    End Sub

Как ни корячился, то там, то тут ошибка вылезет. Помогите, пожалуйста, как написать подобное, вводя строки из текстового файла?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2013, 01:01
Ответы с готовыми решениями:

Формат даты
Вот собственно, то ли я туплю, то ли лыжи не едут! WHERE Дата BETWEEN #&quot; &amp; DateTimePicker1.Value...

Формат вывода даты и время
Всем доброго дня, есть код, который выводит дату и время включения удаленного пк в сети. Imports...

Изменить формат времени с 20:30 на 20.5
Подскажите пожалуйста. Как изменить формат времени с 20:30 на 20.5, 20:45 на 20.75 и наоборот?

Изменить формат DateTime ячейки DataGridView
Кто может подсказать как изменить формат даты в ячейки, по умолчанию он такой 09.03.2014, а как...

4
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
09.04.2013, 04:48 2
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Module Module1
 
    Sub Main()
        Try
            Console.WriteLine(obrabotka("12", "2", "1944"))
            Console.WriteLine(obrabotka("13", "2", "1944"))
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        Console.ReadLine()
    End Sub
    Private Function obrabotka(ByVal mm As String, ByVal dd As String, ByVal yyyy As String) As String
        Dim retval As String = String.Empty
        Try
            Dim dValue As Date = New Date(Integer.Parse(yyyy), Integer.Parse(mm), Integer.Parse(dd))
            retval = String.Format("{0:dd}.{0:MM}.{0:yy}", dValue)
        Catch ex As Exception
            Throw New Exception("Неверный формат даты")
        End Try
 
        Return retval
    End Function
End Module
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 3
09.04.2013, 17:59  [ТС] 3
Благодарю, но...

используя средства, доступные для лабораторки в универе, а именно, для примера
процедуры записи/чтения

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 Sub Запись(ByVal ПутьФ As String, ByVal str1 As String)
        If (My.Computer.FileSystem.FileExists(ПутьФ) = True) Then
            If (MsgBox("Файл существует. Переписать?", _
                MsgBoxStyle.YesNo Or MsgBoxStyle.Question, _
                "Overwrite") <> MsgBoxResult.Yes) Then Exit Sub
        End If
        ' Сохраняем данные.
        Try
            My.Computer.FileSystem.WriteAllText(ПутьФ, str1, False)
        Catch ex As Exception
            MsgBox("Файл не может быть записан на диск " & _
                   "из-за ошибки:" & vbCrLf & vbCrLf & ex.Message)
        End Try
    End Sub
    'Процедура чтения данных из файла целиком в одну строку
    Sub Чтение(ByRef Str3 As String, ByVal filename As String)
        ' Открываем существующий файл и загружаем его в одну строку
        Try
            Str3 = My.Computer.FileSystem.ReadAllText(filename)
        Catch ex As Exception
            MsgBox("Could not open the file due to the " & _
                   " following error:" & vbCrLf & vbCrLf & ex.Message)
        End Try
    End Sub


вот для примера выполненная Мной другая подобная работа, которая повторяет заданный символ, найденный в строке и выводит самую длинную строку

Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
Public Class Form1
 
    Dim Str1 As String 'строка с исходным первым файлом
    Dim Rez As String 'строка с измененным первым файлом
 
 
    Function vvod(ByVal T As TextBox) As String
        Return T.Text
    End Function
    Sub VvodS(ByRef chr As Char)
        chr = TextBox3.Text
    End Sub
 
    Sub vivod(ByVal z As String, ByRef t As TextBox)
        If z.Length <> 0 Then
            t.Text = z
        Else
            t.Text = "Все удалено"
        End If
    End Sub
 
    Sub vivodS(ByVal Z As Integer, ByVal T As TextBox)
        T.Text = Format(Z, "0")
    End Sub
 
 
 
    Sub Запись(ByVal ПутьФ As String, ByVal str1 As String)
        If (My.Computer.FileSystem.FileExists(ПутьФ) = True) Then
            If (MsgBox("Файл существует. Переписать?", _
                MsgBoxStyle.YesNo Or MsgBoxStyle.Question, _
                "Overwrite") <> MsgBoxResult.Yes) Then Exit Sub
        End If
        ' Сохраняем данные.
        Try
            My.Computer.FileSystem.WriteAllText(ПутьФ, str1, False)
        Catch ex As Exception
            MsgBox("Файл не может быть записан на диск " & _
                   "из-за ошибки:" & vbCrLf & vbCrLf & ex.Message)
        End Try
    End Sub
    'Процедура чтения данных из файла целиком в одну строку
    Sub Чтение(ByRef Str3 As String, ByVal filename As String)
        ' Открываем существующий файл и загружаем его в одну строку
        Try
            Str3 = My.Computer.FileSystem.ReadAllText(filename)
        Catch ex As Exception
            MsgBox("Could not open the file due to the " & _
                   " following error:" & vbCrLf & vbCrLf & ex.Message)
        End Try
    End Sub
 
    Sub InsertChar(ByRef str1 As String, ByVal charpos As Integer, ByVal L As Integer)
        str1 = str1.Substring(0, charpos + 1) + str1.Substring(charpos, L - charpos)
    End Sub
 
 
    Sub Обработка(ByRef a As String)
        Dim c As Char
        VvodS(c)
        Dim idx, Lng As Integer
        Lng = a.Length : idx = 0
        While Lng <> idx
            If a.Substring(idx, 1) = c Then
                InsertChar(a, idx, Lng)
                Lng = Lng + 1
                idx = idx + 2
            Else
                idx = idx + 1
            End If
        End While
    End Sub
 
    'Процедура  решения задачи 
    Sub Решение(ByVal s1 As String, ByRef s2 As String)
        Dim max As Integer
        Dim a, naibs As String
        Dim Stroki() As String 'массив строк первого файла
        Stroki = Split(s1, vbNewLine) 'Разбиваем строку с первым файлом
        ' на массив строк по признаку конца строки
        s2 = "" ' новая строка для нового файла целиком
        naibs = ""
        max = 0
        For i As Integer = 0 To Stroki.Length - 1
            a = Stroki(i) ' одна строка первого файла
            Обработка(a) ' добавление символов
            If a.Length > max Then ' поиск строки с максимальным количеством символов
                max = a.Length
                naibs = a
            End If
            'собираем измененные строки первого файла в одну строку s2
            s2 = s2 + a + vbNewLine
        Next
        vivod(naibs, TextBox5)
        vivodS(max, TextBox6)
    End Sub
 
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e _
                              As System.EventArgs) Handles Button3.Click, Button2.Click
        Решение(Str1, Rez)
        vivod(Rez, TextBox4)
    End Sub
 
 
    'Процедура чтения  первого файла
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e _
                          As System.EventArgs) Handles Button1.Click
        Dim ПутьФ1 As String = ""
        ПутьФ1 = vvod(TextBox1)
        Чтение(Str1, ПутьФ1)
        vivod(Str1, TextBox2)
    End Sub
 
 
    'Процедура записи строки с измененным первым файлом  в тот же файл
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e _
                              As System.EventArgs) Handles Button3.Click
        Dim ПутьФ As String = ""
        ПутьФ = vvod(TextBox1)
        Запись(ПутьФ, Rez)
    End Sub
 
    Private Sub Button4_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button4.Click
        End
    End Sub
End Class



Прошу простить за много букв, но Я никак не могу понять, как же сделать данное задание
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
10.04.2013, 01:36 4
Какое отношение это имеет к теме? Я дал решение. Чем оно не подходит?
0
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 3
11.04.2013, 01:40  [ТС] 5
Препод просит реализовать именно тем способом, у Меня не получается, в этом и проблема. Институт ведь.

Добавлено через 14 часов 20 минут
Нашёл из-за чего не работало, благодарю за попытки помощи!
0
11.04.2013, 01:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2013, 01:40
Помогаю со студенческими работами здесь

DataGridView изменить формат ячейки или столбца
В ячейку DataGridView1 мне необходимо вписать слово, этот столбец с цифрами в ячейках, но...

Как изменить представление даты в колонке DataGridView?
Одна из колонок DataGridView заполняется датами из готовой таблицы базы данных Access. Все даты...

Изменить код определения даты и времени последнего логона юзера
Всем привет! есть код: Dim machine As String = &quot;CompName&quot; Dim loggedOnUsers = New...

Запретить ввод даты в MaskedTextBox1 больше текущей даты
На форме MaskedTextBox1 с маской под короткую дату, то есть __.__.____ Как запретить ввод в это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru