Benim yaklaşımım. Çekirdek - Motor. - sayfa 98

 
Bunun nasıl yapılacağına dair bir kılavuz olarak , bir zip arşivinin yapısına bakın. Basit yapılardan ve verilerden oluşur. Bunun gibi bir yapı, veri aktarımı için harika olabilir. Zip arşivinde, farklı adlara sahip yüzlerce dosya içeren minyatür bir dosya sisteminin mükemmel görüntüsünü engellemeyen tek bir satır olmadığını not ediyorum.
 
Vasiliy Sokolov :
Bunun nasıl yapılacağına dair bir kılavuz olarak , bir zip arşivinin yapısına bakın. Basit yapılardan ve verilerden oluşur. Bunun gibi bir yapı, veri aktarımı için harika olabilir. Zip arşivinde, farklı adlara sahip yüzlerce dosya içeren minyatür bir dosya sisteminin mükemmel görüntüsünü engellemeyen tek bir satır olmadığını not ediyorum.

Sorunla ilgili profesyonel görüşünüze katılıyorum. Bayt geçmek, dizeleri MT nesnelerinden geçirmekten daha ciddi görünüyor.

Soru, bunun nasıl uygulanabileceğidir.

İletilen verilerin boyutu ve türleri önceden bilinmemektedir. Birlik nasıl vidalanır?

 
Реter Konow :

Sorunla ilgili profesyonel görüşünüze katılıyorum. Baytları geçmek, dizeleri MT nesnelerinden geçirmekten daha ciddi görünüyor.

Soru, bunun nasıl uygulanabileceğidir.

İletilen verilerin boyutu ve türleri önceden bilinmemektedir. Birlik nasıl sabitlenir?

Belki.

Zip yapısını ayrıntılı olarak inceleyin. Anlayış gelecek. Paketlemeden önce paketlenen dosyaların boyutu orada bilinmiyor. Dosya adları çeşitli uzunluklarda olabilir. Dosya sayısı da çok farklı olabilir. Buna rağmen, bir zip, verilere atıfta bulunan güçlü bir şekilde yazılmış bir sonlu yapılar kümesini temsil eder.

Hangi yapılarla çalışmanız gerektiğini anladığınızda, birlik ile ilgili herhangi bir sorun olmayacaktır, çünkü birlik, bu yapıların bayt biçimindeki temsilinden başka bir şey değildir.

 
Vasiliy Sokolov :

Belki.

Zip yapısını ayrıntılı olarak inceleyin. Anlayış gelecek. Paketlemeden önce paketlenen dosyaların boyutu orada bilinmiyor. Dosya adları çeşitli uzunluklarda olabilir. Dosya sayısı da çok farklı olabilir. Buna rağmen, bir zip, verilere atıfta bulunan güçlü bir şekilde yazılmış bir sonlu yapılar kümesini temsil eder.

Hangi yapılarla çalışmanız gerektiğini anladığınızda, birlik ile ilgili herhangi bir sorun olmayacaktır, çünkü birlik, bu yapıların bayt biçimindeki temsilinden başka bir şey değildir.

Peki, ama neden, örneğin, sendika olmadan yapamazsınız.

Her olayda, EA, değiştirilen tüm parametreleri ve bunların her türdeki değerlerini içeren bir mesaj dizisi toplar. Daha sonra bu dizgiyi StringToChar kullanarak bir bayt dizisine çevirir ve kaynağa yazarız. Daha sonra tersten açma işlemini yapıyoruz.

Başlangıçta, bir kaynakla böyle bir çözüm hayal ettim. Ancak, ipin montajı ve bölünmesi gereklidir.

 
Zaten kararınızda bir kaynak olmadan yapamazsınız. Yani soru, dize ayrıştırma olmadan nasıl yapılacağıdır. Bunun mümkün olduğunu düşünüyorsun. Dürüst olmak gerekirse, bundan şüpheliyim. Ama dışlamıyorum...
 
Реter Konow :

Peki, ama neden, örneğin, sendika olmadan yapamazsınız.

Her olayda, EA, değiştirilen tüm parametreleri ve bunların her türdeki değerlerini içeren bir mesaj dizisi toplar. Daha sonra bu dizgiyi StringToChar kullanarak bir bayt dizisine çevirir ve kaynağa yazarız. Ardından tersten açma işlemini yapıyoruz.

Başlangıçta, bir kaynakla böyle bir çözüm hayal ettim. Ancak, ipin montajı ve bölünmesi gereklidir.

Birlik, yapıların aynı şey olan bayt veya int biçiminde eşzamanlı bir temsilidir. Birlik, deyim yerindeyse, yapıları bir bayt dizisine yansıtır ve bir bayt dizisi aynı zamanda bir dizi yapıdır. Kaynak bir int dizisiyse, o zaman bir bayt dizisini bir yapı dizisine dönüştürmek ve bunun tersini yapmak için ek bir prosedür yapmaya gerek yoktur. Bu zaman kazandırır.

ps Bu şema ile mesaj kaynağı veriyi kaynağa kopyalamaz, veriyi doğrudan değiştirir ve bu değişiklikler hemen kaynakta görünür. Dizeleri dizilere ve dizileri sonraki ayrıştırma ile dizilere sonsuz dönüşümler yapmak yerine, doğrudan verilerle çalıştığı ortaya çıktı. Bunlar yalnızca ResourceReadImage kullanan alıcılara kopyalanır.

 
Vasiliy Sokolov :

Birlik, yapıların aynı şey olan bayt veya int biçiminde eşzamanlı bir temsilidir. Birlik, deyim yerindeyse, yapıları bir bayt dizisine yansıtır ve bir bayt dizisi aynı zamanda bir dizi yapıdır. Kaynak bir int dizisiyse, o zaman bir bayt dizisini bir yapı dizisine dönüştürmek ve bunun tersini yapmak için ek bir prosedür yapmaya gerek yoktur. Bu zaman kazandırır.

Düşünmek lazım... Belki haklısın, bunu bir birlik yardımıyla hayata geçirmek mümkün.

Örneğin, her parametre değeri ayarı, bu değeri bir bayt dizisine dönüştürürse. Daha doğrusu, tüm kullanıcı parametreleri birliğe ait olmalıdır. Ardından, baytlara yansıtılan kopyaları, kaynağa yazmak için hemen kullanılabilir olacaktır.

 
Реter Konow :

Örneğin, her parametre değeri ayarı, bu değeri bir bayt dizisine dönüştürürse . Daha doğrusu, tüm kullanıcı parametreleri birliğe ait olmalıdır. Ardından, baytlara yansıtılan kopyaları, kaynağa yazmak için hemen kullanılabilir olacaktır.

Evet, aynen, öncekine ps'de zaten cevap verdim. Bunu yazdığınızda mesaj :) Yani uzun kopyalama ve dönüştürme ile değil, görüntüleme ile çalışıyoruz.

 
Kısacası, kullanıcının değerindeki her değişiklikte. parametresine göre, bu değer birleşimdeki değişkenin değerine dönüştürülmeli ve hemen ortak bir bayt dizisinde saklanmalı, bu daha sonra uint'e dönüştürülmeli ve kaynağa yazılmalıdır.
 
Vasiliy Sokolov :

Evet, aynen, öncekine ps'de zaten cevap verdim. Bunu yazdığınızda mesaj :) Yani uzun kopyalama ve dönüştürme ile değil, görüntüleme ile çalışıyoruz.

Tamam, peki ya metinler?

StringToChar() aracılığıyla baytlara dönüştürülmeleri gerekir. Sonuçta, sendika aracılığıyla imkansız gibi mi?