Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Получение имени LastFiles Добавлено: 27.04.09 15:38  

Автор вопроса:  Sergey
Dim TestDate = #3/4/2009#
Dim Directory = New IO.DirectoryInfo("C:\Windows\")
Dim LastFiles = From F In Directory.GetFiles Where (F.CreationTime = TestDate)

Как теперь просмотреть имя LastFiles, которые получены?

Ответить

  Ответы Всего ответов: 27  

Номер ответа: 1
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #1 Добавлено: 27.04.09 19:17
Точно не знаю, но мне кажется можно сделать так:
Dim LastFiles = From F In Directory.GetFilesName Where (F.CreationTime = TestDate)

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 27.04.09 19:25
А ты про типы данных вообще что нибудь слышал? Или типы западло писать и пусть компилятор сам думает, что тебе надо получить?

Ответить

Номер ответа: 3
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 27.04.09 20:45
Sharp всегда так пишет, так что это круто... :)

а по вопросу: также как и обычно

  1. For i As Integer = 0 To lastFiles.Count - 1
  2.             MsgBox(lastFiles(i))
  3.         Next


или

  1. For Each str As String In lastFiles
  2.             MsgBox(str)
  3.         Next

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 27.04.09 21:24
Sharp всегда так пишет, так что это круто...

во-первых, такое написание это аццтой (имхо)
во-вторых, Sharp вряд ли будет так писать.. он сишник, а значит приучен к строгой типизации.. Это скорее стиль Brand'a..
в-третьих, Brand так пишет, потому что знает и понимает что у него будет лежать в переменной, поэтому он себе может позволить подобные выходки.
в-четвертых, даже если так пишет Brand, то это не показатель крутизны.. надо еще самому головой иногда думать и делать выводы.
ну и в пятых, судя по F.CreationTime он работает с FileInfo, а значит приведенный тобой код - полнейшая хрень, если только там не переопределен метод ToString

Ответить

Номер ответа: 5
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #5
Добавлено: 27.04.09 23:42
во-первых, я согласен что аццтой
во-вторых, уж и пошутить низя
в-третьих, верно, не доглядел (думал там IO.Directory.GetFiles()) (так что нехер называть переменные так)

  1. Dim testdate As Date = #3/17/2009#
  2.         Dim dirinfo As IO.DirectoryInfo = New IO.DirectoryInfo("e:\Windows\")
  3.         Dim lastFiles = From f As IO.FileInfo In dirinfo.GetFiles() Where f.CreationTime.Date = testdate Select f.Name
  4.         For Each str As String In lastFiles
  5.             MsgBox(str)
  6.         Next

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 28.04.09 09:31
Эх, по сути все сказали. Ну приведу еще свой пример

  1.         Dim TestDate = #3/4/2009#
  2.         Dim Directory = New IO.DirectoryInfo("C:\Windows\")
  3.         For Each File In From F In Directory.GetFiles _
  4.                          Where F.CreationTime.Date = TestDate.Date
  5.             Console.WriteLine(File.Name)
  6.         Next


Насчет Local type interference зря бочку катите. Если из кода непонятно что будет лежать в переменной, то компилятор ошибку выдаст. А если понятно, то код ничем не будет отличаться от кода в котором все переменные объявлены "по правилам"

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 28.04.09 10:53
Насчет Local type interference зря бочку катите.

Совсем не зря.. эта фича не должна жить.. читабеьность кода падает сразу же..
Если из кода непонятно что будет лежать в переменной

Так в том то и дело, чтобы понять ЧТО же все таки лежит в переменной мне надо проанализировать правую часть строки.. ну и нафига это надо? Мне что, заняться больше нечем как угадыванием типа переменной?
Brand, ты чему молодеж учишь??? Ты без зазрения совести обзываешь переменные именами классов и делаешь вид, что так и должно быть!!! Ведь кто нибудь обязательно поставит сверху Imports System.IO и потом будут кричать что твой код не рабочий!
Что касается кода то лично я предпочитаю всегда жестко указывать тип который там должен лежать чтоб потом не гадать на кофейной гуще..

  1.  
  2.             DateTime testDate = new DateTime(2009, 4, 3);
  3.             DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Windows\");
  4.             foreach (FileInfo fileInfo in dirInfo.GetFiles().Where(f => f.CreationTime.Date == testDate.Date))
  5.                 Console.WriteLine(fileInfo.Name);

Ответить

Номер ответа: 8
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #8 Добавлено: 28.04.09 11:17
Я конечно согласен, что строгость должна соблюдаться и все переменные должны бить объявлены явно. Это конечно мелочь, но явные переменные занимают меньше места в памяти и работают быстрее. А если использовать не явно объявленные переменный, то в тех программах которые были написаны давно и в которых возникли проблемы при работе, найти причину будет тяжелее так как старый код забывается и не явные переменные все всплывают, так как ты не можешь понять какой их тип и что куда зачем. А при явно объявленных переменных и читать легче и понять смысл кода, а если кому то придётся исправлять твою программу, то на все твои не явные переменные и на тебя так будет плеваться ух :).
Лично я всегда использую объявленные переменные и объекты, так как это упрощает читабельность и снижает вероятность ошибки.

Ответить

Номер ответа: 9
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #9 Добавлено: 28.04.09 11:26
EROS последний твой пример на C# написан же :)

Ответить

Номер ответа: 10
Автор ответа:
 Sergey



Вопросов: 39
Ответов: 87
 Профиль | | #10 Добавлено: 28.04.09 12:32
А как получить время файла с помощью API-функций, читаю и не могу разобраться.

Ответить

Номер ответа: 11
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #11 Добавлено: 28.04.09 13:40
EROS последний твой пример на C# написан же

А как догадался? :-D

Ответить

Номер ответа: 12
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #12 Добавлено: 28.04.09 16:53
Мне что, заняться больше нечем как угадыванием типа переменной?

Если из названия переменной и окружающего кода не понятно какой у нее тип, достаточно навести на нее мышкой.
Если не хочешь трогать мышку, все равно прийдется крутить до места где переменная объявлется.

кто нибудь обязательно поставит сверху Imports System.IO и потом будут кричать что твой код не рабочий!

Ну поставит, а что это изменит? Код так и будет работать.

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

Ой да что тут гадать?
Если написано
Dim Count = Items.Count

какой еще тип у переменной может быть? Конечно Integer. И так далее.

Ответить

Номер ответа: 13
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #13 Добавлено: 28.04.09 16:57
Aston пишет:
конечно мелочь, но явные переменные занимают меньше места в памяти и работают быстрее.

Готов поставить $100 для доказательства этой фразы?

Ответить

Номер ответа: 14
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #14 Добавлено: 28.04.09 17:20
Артём, не готов, так как я досконально не знаю как работают эти неявные переменные, но по идее так и я читал сто так оно и есть.
А при явно объявленных переменных и читать легче и понять смысл кода вот на это готов поставить 100$.

Ответить

Номер ответа: 15
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #15 Добавлено: 28.04.09 18:23
Aston пишет:
Артём, не готов, так как я досконально не знаю как работают эти неявные переменные, но по идее так и я читал сто так оно и есть.

Ну если досконально не знаешь, почему говоришь что явно объявленные перменные занимают меньше памяти и работают быстрее?

А при явно объявленных переменных и читать легче и понять смысл кода вот на это готов поставить 100$.

Ну что там легче читать и писать?

  1. For i As Integer = 0 To 10
  2. vs
  3. For i = 0 to 10
  4.  
  5.  
  6. Using Connection As SqlConnection = CreateConnection
  7. vs
  8. Using Connection = CreateConnection

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам