Страница: 1 | 2 | 3 | 4 | 5 ..... 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 2 | 3 | 4 | 5 ..... 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 
 
			
 
  
		
     
  
    
Вопрос: эээээ
     
    
Добавлено: 12.04.05 18:57
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Дмитрий Щапов
 Дмитрий Щапов
      
       
  
       
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 760
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 706 
      
Автор ответа: Александр
 Александр


Разработчик Offline Client
ICQ: 204034 
Вопросов: 106
Ответов: 1919
      
 Профиль |  | #706
       
Добавлено:  21.04.05 17:17
       
    
       
  
Павел, а вообще на счет fbe - продумай заодно возможность приостановки доставки этого всего. А то скоро лето и я не хочу, что бы мой ящик переполнился...  
     
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 707 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #707
       
Добавлено:  21.04.05 17:35
       
    
       
  
 
    
А твой за сколько?
Такого файла у меня нет, взял обычый Win32API.txt, методом copy-paste довел его размер до твоих же 1,493,370.
Код выполняется 10 раз, после этого полученное значение делится на 2. Время, затраченное на чтение/запись не учитывается.
Кодирование занимает порядка 390-400 мс (код я запускал несколько раз).
Для чистоты эксперимента выложи где-нибудь и свою прогу.
Мой код (VB 2005):
        Dim mStart As Date = Now
        Dim mresult As String = ""
        For i As Integer = 0 To 9
            mresult = Base8.ToBase8String(mData)
        Next i
        MessageBox.Show(Now.Subtract(mStart).ToString)
        My.Computer.FileSystem.WriteAllText("c:\win32api plus.txt", mResult, False)
        Dim SB As New System.Text.StringBuilder(CInt(mBytes.Length / 3 * 8))
        Dim i As Integer
        For i = 0 To mBytes.GetUpperBound(0) - 2 Step 3
            SB.Append(Chr(((mBytes(i) And 224) >> 5) + 49))
            SB.Append(Chr(((mBytes(i) And 28) >> 2) + 49))
            SB.Append(Chr(((mBytes(i) And 3) << 1) Or ((mBytes(i + 1) And 128) >> 7) + 49))
            SB.Append(Chr(((mBytes(i + 1) And 112) >> 4) + 49))
            SB.Append(Chr(((mBytes(i + 1) And 14) >> 1) + 49))
            SB.Append(Chr(((mBytes(i + 1) And 1) << 2) Or ((mBytes(i + 2) And 192) >> 6) + 49))
            SB.Append(Chr(((mBytes(i + 2) And 56) >> 3) + 49))
            SB.Append(Chr((mBytes(i + 2) And 7) + 49))
        Next
        If mBytes.Length Mod 3 > 0 Then
            SB.Append(Chr(((mBytes(i) And 224) >> 5) + 49))
            SB.Append(Chr(((mBytes(i) And 28) >> 2) + 49))
            If mBytes.Length Mod 3 = 1 Then
                SB.Append(Chr(((mBytes(i) And 3) << 1) + 49))
                SB.Append("==" 
            Else
                SB.Append(Chr(((mBytes(i) And 3) << 1) Or ((mBytes(i + 1) And 128) >> 7) + 49))
                SB.Append(Chr(((mBytes(i + 1) And 112) >> 4) + 49))
                SB.Append(Chr(((mBytes(i + 1) And 14) >> 1) + 49))
                SB.Append(Chr(((mBytes(i + 1) And 1) << 2) + 49))
                SB.Append("=" 
            End If
        End If
        Return SB.ToString
    End Function
    Public Shared Function FromBase8String(ByVal mBytes() As Byte) As String
        Dim SB As New System.Text.StringBuilder(CInt(mBytes.Length / 8 * 3))
        Dim i As Integer
        For i = 0 To mBytes.GetUpperBound(0) Step 8
            SB.Append(Chr((mBytes(i) - 49) * 32 + (mBytes(i + 1) - 49) * 4 + (mBytes(i + 2) - 49) \ 2))
            SB.Append(Chr(((mBytes(i + 2) - 49) Mod 2) * 128 + (mBytes(i + 3) - 49) * 16 + (mBytes(i + 4) - 49) * 2 + (mBytes(i + 5) - 49) \ 4))
            SB.Append(Chr(((mBytes(i + 5) - 49) Mod 4) * 64 + (mBytes(i + 6) - 49) * 8 + mBytes(i + 7) - 49))
        Next
        If mBytes.Length Mod 8 > 0 Then
            SB.Append(Chr((mBytes(i) - 49) * 32 + (mBytes(i + 1) - 49) * 4 + (mBytes(i + 2) - 49) \ 2))
            If mBytes(i + 3) <> Asc("=" Then
 Then
                SB.Append(Chr(((mBytes(i + 2) - 49) Mod 2) * 128 + (mBytes(i + 3) - 49) * 16 + (mBytes(i + 4) - 49) * 2 + (mBytes(i + 5) - 49) \ 4))
                If mBytes(i + 6) <> Asc("=" Then
 Then
                    SB.Append(Chr((mBytes(i + 5) - 49) Mod 4 * 64 + (mBytes(i + 6) - 49) * 8 + mBytes(i + 7) - 49))
                End If
            End If
        End If
        Return SB.ToString
    End Function
		
	  
			 
	
		 
    
       
    
Номер ответа: 708 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #708
      
Добавлено:  21.04.05 18:08
       
    
       
  
Да, только у меня Целерон 475, а у тебя Атлон 2 гига  
     
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 709 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #709
      
Добавлено:  21.04.05 18:11
       
    
       
  
А нет, сбрехал, это у меня дома. А на работе Pentium 3 500 MHz. Разница в принципе не большая.
       
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 710 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #710
      
Добавлено:  21.04.05 18:14
       
    
       
  
Короче скорость у тебя ниже на порядок получается а не в разы. Ну ладно, на то оно и ассемблер чтобы быстрым быть. Не каждый на таком написать сможет. VB.NET тоже в принципе скорость неплохую выдаёт. А на VB6 ты не пробовал тестить?
       
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 711 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #711
      
Добавлено:  21.04.05 18:16
       
    
       
  
Уважаемые, а кто заметил что форум изменился?  
     
Павел услышал молитвы Артёма Л.  
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 712 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #712
      
Добавлено:  21.04.05 18:23
       
    
       
  
 
    
Время, затраченное на чтение/запись не учитывается. 
 Ну да, я его и не учитывал.
Код выполняется 10 раз, после этого полученное значение делится на 2
 А зачем на 2 то делишь? Чтоб быстрее было?  
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 713 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #713
       
Добавлено:  21.04.05 18:23
       
    
       
  
 
    
На порядок? Не совсем объективно.
Ты свою программу выложи, я у себя затестирую, для точности.
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 714 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #714
       
Добавлено:  21.04.05 18:25
       
    
       
  
 
    
 А зачем на 2 то делишь? Чтоб быстрее было?  
 
Нет, чтоб твоему коду фору дать  
На самом деле просто опечатался.
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 715 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #715
      
Добавлено:  21.04.05 18:26
       
    
       
  
 
    
На порядок? Не совсем объективно.
 Ну может и не совсем точное определение. Точнее будет на поколение, т.к. программа выполняется почти с одинаковой скоростью на машинах 3-го и 4-го поколения.
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 716 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #716
      
Добавлено:  21.04.05 18:27
       
    
       
  
 
    
Нет, чтоб твоему коду фору дать  
 
На самом деле просто опечатался. 
 А может просто проговорился?  
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 717 
      
Автор ответа: Дмитрий Щапов
 Дмитрий Щапов



Вопросов: 71
Ответов: 321
      
 Профиль |  | #717
       
Добавлено:  21.04.05 20:04
       
    
       
  
to Artyom:
 
    
 Смотри здесь {page 3; #34}
Говорю ещёраз СПАСИБО ОГРОМНЕЙШЕЕ!!!! за пример.
Кстати твоей ссылки в мсдн у меня нет такой страницы. Так что не надо! Смотрел я. Может не то искал, но откуда мне знать как там в НЕТ сделано.
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 718 
      
Автор ответа: Morpheus
 Morpheus




Вопросов: 224
Ответов: 3777
      
 Web-сайт:  
 Профиль |  | #718
      
Добавлено:  21.04.05 20:11
       
    
       
  
А чё тема в разделе ЮМОР? тогда бы в офф-топ
       
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 719 
      
Автор ответа: Morpheus
 Morpheus




Вопросов: 224
Ответов: 3777
      
 Web-сайт:  
 Профиль |  | #719
      
Добавлено:  21.04.05 20:13
       
    
       
  
В продолжени темы про котов
 
    
Навеяло про историю кота, на которого упала крышка от унитаза.
Знакомая рассказала похожую историю.
У ее дальних родственников кот ходил в туалет, так- залезал в унитаз,
лапами выплескивал воду и делал свои дела прямо в дырку с водой.
И вот ак то раз у этой родни был какой-то сабантуй, и толи света не было
в туалете, то ли котяра слишком приник к унитазу, но влетевший в
туалетную комнату посетитель не заметил животной и взгромоздившись на
унитаз почувтвовал, что кто то мягко водит по его заду, в том числе
гроздям.
В общем процесс пошел у мужика быстро и частично мимо унитаза. Хорошо,
что кот не выпустил коготки.
      
		
	  
			 
	
		 
    
       
    
Номер ответа: 720 
      
Автор ответа: j3d1
  j3d1





ICQ: 8370005 
Вопросов: 34
Ответов: 466
      
 Профиль |  | #720
       
Добавлено:  21.04.05 20:50
       
    
       
  
 
    
2j3d1
Кстати, не ты случайно написал игруху такую, Арканоид называется? Класная вещь! И если бы ещё непробиваемые камни убрать было бы вааще рулёз
 случайно я 