xml dosyasını çevrimiçi olarak dbf'ye dönüştürün. Bir DBF dosyasını açma ve EXCEL'e dönüştürme

İyi çalışmalarınızı bilgi bankasına göndermek basittir. Aşağıdaki formu kullanın

Bilgi tabanını çalışmalarında ve işlerinde kullanan öğrenciler, lisansüstü öğrenciler, genç bilim adamları size çok minnettar olacaklar.

http://www.allbest.ru/ adresinde barındırılmaktadır

Pridnestrovian Eyalet Üniversitesi adını aldı TG Şevçenko

Mühendislik ve Teknoloji Enstitüsü

Sandalye Bilişim Teknolojileri ve üretim süreçlerinin otomatik kontrolü

SON YETERLİLİK ÇALIŞMASI

230100 "Bilgisayar bilimi ve bilgisayar teknolojisi" yönünde

konu: "DBF DOSYALARINDAN VERİTABANLARINI XML BİÇİMİNDEKİ DOSYASINA PROGRAM-DÖNÜŞTÜRÜCÜ"

Öğrenci Maksimov Dmitry Olegovich

Tiraspol, 2013

GİRİİŞ

1. KONU ALANININ ARAŞTIRILMASI VE ANALİZİ

1.1 Görevin açıklaması

1.2 İncelenen sorunun alaka düzeyinin gerekçesi

1.3 Benzer problemleri çözmek için yöntemlere genel bakış

1.4 Sorunun ifadesi, sistem gereksinimleri, girdi verileri ve çıktı formları için gereksinimler

2. YAZILIM ÜRÜNÜNÜN YAPISININ VE MİMARİSİNİN TASARIMI

2.1 Uygulama yöntemleri ve araçlarının seçimi, gerekçesi

2.2 Uygulanan algoritmaların açıklaması

2.3 Yapı, mimari yazılım ürünü

2.4 Fonksiyon diyagramı, yazılım ürününün fonksiyonel yapısı

3. YAZILIM ÜRÜNÜNÜN UYGULANMASI VE TEST EDİLMESİ

3.1 Uygulama açıklaması

3.2 Kullanıcı arayüzünün açıklaması

3.3 Yazılım ürününün güvenilirliğinin test edilmesi ve değerlendirilmesi

3.4 Maliyet hesaplaması

3.5 İşçi koruması

ÇÖZÜM

SÖZLEŞMELER, SEMBOLLER, BİRİMLER VE TERİMLER LİSTESİ

KULLANILAN LİTERATÜR LİSTESİ

BAŞVURU

GİRİİŞ

Bilgisayarların var olduğu dönemde birçok işletim sistemi geliştirilmiştir. Artık sayıları düzinelerce ölçülüyor ve çeşitli ailelerde yalnızca belirli bir işletim sistemi satırında kullanılan dosya biçimleri var. Örneğin, desteklenen işletim sistemlerinin görüntülerini içeren herhangi bir dosya biçimini açan görüntüler için evrensel düzenleyiciler varsa, örneğin, veritabanları için böyle bir düzenleyici yoktur.

Her veritabanı biçimiyle çalışmak için ayrı bir veritabanı yönetim sistemi vardır. Çeşitli kriterlerde farklılık gösteren çok sayıda veri tabanı çeşidi vardır:

1) Veri modeline göre sınıflandırma:

a) hiyerarşik;

b) ağ;

c) ilişkisel;

d) nesne ve nesne yönelimli;

e) nesne-ilişkisel, işlevsel.

2) Kalıcı depolama ortamına göre sınıflandırma:

a) ikincil bellekte veya geleneksel;

b) RAM'de;

c) üçüncül bellekte.

3) Dağılım derecesine göre sınıflandırma:

a) merkezi veya konsantre;

b) dağıtıldı.

4) Diğer veritabanı türleri

a) mekansal;

b) geçici;

c) uzay-zaman;

d) döngüsel.

Çok sayıda farklı veritabanları, veritabanının içeriğini bir türden diğerine doğrudan aktarmanıza izin vermez. Bu sorunu çözmek için, bir veritabanı biçimini diğerine dönüştüren dönüştürücü programlar vardır. Kural olarak, dönüştürücüler yalnızca en yaygın veritabanı biçimleri için mevcuttur; bu, bazı eski biçimleri doğrudan modern bir biçime dönüştürmenize izin vermez. İki dönüştürücü kullanmak mantıklı değildir, bu nedenle en iyi çözüm veritabanlarını bir ara adım olarak XML dosyalarında depolamaktır.

XML dosyaları ve XML dilini temel alan diğer uzantıların dosyaları çok yaygınlaştı, neredeyse tüm modern işletim sistemleri bu dosya biçimini desteklemektedir. XML dosyaları, uygulama ayarlarından veritabanlarına kadar çok çeşitli verileri depolar. XML tabanlı dosyalar, İnternette ve programlar arasında bilgi alışverişinde bulunmak için kullanılır (bunun için verilen dil işaretleme ve orijinal olarak tasarlandı). XML formatındaki dosyalar metin verileri içerdiğinden, herhangi bir metin düzenleyicide kolayca düzenlenebilir ve ayrıca herhangi bir kullanıcı dostu veri kodlaması ayarlanabilir. Ek olarak, çok sayıda XML belge üreticisi vardır.

1 . KONU ALANININ ARAŞTIRILMASI VE ANALİZİ

1.1 görevin açıklaması

Nihai eleme çalışmasında, aktarılan dbf dosyalarının içeriğine dayalı olarak, kullanıcı tarafından belirlenen bir şablona göre bir XML dosyası oluşturan bir dönüştürücü programın uygulanması gerekmektedir. Dbf dosyalarının sayısı ve yapısı isteğe bağlı olabilir, çıktı XML dosyası her zaman aynı olmalıdır. Her dbf dosyasının, programın XML dosyasına bilgi yazdığı temelinde kendi şablonu vardır. Şablon oluşturma yeteneğini iki şekilde uygulamak gerekir: kod kullanmak ve bir kurucu kullanmak. Kodla oluşturulan şablonlar, çıktı dosyasına hangi verilerin yazılacağını seçmelidir. Bu olasılık, bu program için özel olarak geliştirilmiş özel kod komutları yardımıyla gerçekleştirilir. Yapıcı kullanılarak oluşturulan şablonlarda, programın bir XML dosyasına bilgi yazmasına dayalı olarak özel şablonlar oluşturmanıza izin verecek basit ve kullanışlı bir arayüz uygulamanız gerekir.

1.2 alaka gerekçesi incelenmekte olan sorun

XML, World Wide Web Konsorsiyumu tarafından önerilen ve aslında bir dizi genel sözdizimi kuralı olan bir biçimlendirme dilidir. XML, yapılandırılmış verileri (mevcut veritabanı dosyaları yerine) depolamak, programlar arasında bilgi alışverişi yapmak ve temelinde daha özel biçimlendirme dilleri (örneğin, XHTML) oluşturmak için tasarlanmış bir metin biçimidir.

Bir XML belgesi, yalnızca kendi başına bir veritabanıdır. Genel anlamda bu kelimenin, yani bir veri topluluğudur. Bu, diğer birçok dosyadan farklı değildir - sonuçta tüm dosyalar verilerden oluşur. belirli bir tür. Bir "veritabanı" formatı olarak XML'in kendi kendini tanımlama (işaretleme verileri tanımlar) gibi bazı avantajları vardır. Veriler Unicode'da saklandığı için farklı yazılımlarla işlenmesi kolaydır, verileri ağaç veya grafik benzeri bir yapıda saklar. Ancak bazı dezavantajları da vardır, örneğin, metni ayrıştırma ve dönüştürme ihtiyacı nedeniyle verilere erişimde çok ayrıntılı ve nispeten yavaştır.

Olumlu tarafı, XML, geleneksel veritabanlarında bulunabilecek birçok şeyi uygulamanıza izin verir: depolama (XML belgeleri), şemalar (DTD, XML Şema Dili), sorgulama dilleri (XQuery, XPath, XQL, XML - QL, QUILT vb.), API'ler (SAX, DOM, JDOM), vb. Dezavantajları, modern veritabanlarında bulunan pek çok özelliğin olmamasını içerir: depolama ekonomisi, dizinler, güvenlik, işlemler ve veri bütünlüğü, çok kullanıcılı erişim, tetikleyiciler, birçok belgede sorgulamalar vb.

Böylece az veri, az kullanıcı ve düşük performans gereksinimi olan ortamlarda XML belgelerini veritabanı olarak kullanmak mümkün iken, çok kullanıcılı ve güçlü entegrasyon gereksinimleri olan çoğu iş ortamında yapılamamaktadır. yüksek gereksinimler performans.

Bir XML belgesinin uygun olduğu bir "veritabanı" örneği, uygulama yapılandırma bilgilerini içeren bir dosya olan bir .ini dosyasıdır. Küçük bir dizi XML tabanlı özelliğe sahip bir programlama dili bulmak ve onu yorumlamak için bir SAX uygulaması yazmak, virgülle ayrılmış dosyalar için bir ayrıştırıcı yazmaktan çok daha kolaydır. Ek olarak, XML, veri öğelerini iç içe yerleştirmenize izin verir - verileri virgüllerle ayırırken bunu yapmak oldukça zordur. Bununla birlikte, bu tür dosyalar doğrusal olarak ve yalnızca uygulama açıldığında veya kapatıldığında okunup yazıldıklarından, kelimenin tam anlamıyla veritabanları olarak adlandırılamaz.

En ilginç örnekler XML belgesini veritabanı olarak kullanmanın uygun olduğu veri setleri, kişisel bir kişi listesidir (isimler, telefon numaraları, adresler vb.). Bununla birlikte, dBASE ve Access gibi veritabanlarının düşük maliyeti ve kullanım kolaylığı nedeniyle, bu durumlarda bile veritabanı olarak bir XML belgesi kullanmak için çok az neden vardır. XML'in tek gerçek yararı, verilerin bir uygulamadan diğerine kolayca taşınabilmesidir, ancak veritabanlarını XML biçimine seri hale getirmek için zaten yaygın araçlar olduğundan, bu yarar o kadar önemli değildir.

Yazılım geliştirme aşağıdaki nedenlerle önemlidir:

dbf veritabanı formatı eskidir ve modern gereklilikleri karşılamamaktadır;

XML formatının içerik için katı gereksinimleri yoktur, kullanıcı verileri herhangi bir sırayla depolayabilir ve herhangi bir ada sahip etiketler oluşturabilir;

Hiçbir dönüştürücü programı, kendi XML dosya yapınızı oluşturmanıza ve çeşitli dbf biçimli dosyalardan veri yazmanıza izin vermez.

1.3 Benzer problemleri çözme yöntemlerine genel bakış

"White Town", dbf dosyalarını XML formatına dönüştürmeyi mümkün kılar. Program dBase III, dBase IV, FoxPro, VFP ve dBase Level 7 dbf dosyalarını dönüştürebilmektedir.Program komut satırı arayüzünü desteklemektedir. Böylece, gerekli parametreler belirtildikten sonra veya Windows programlayıcıdan bir programa göre bir .BAT veya .LNK dosyasından başlatılabilir. Bu yazılım ürününün dezavantajı, çıktı dosyası formatının özelleştirilememesidir. Ana uygulama penceresi Şekil 1.1'de gösterilmiştir.

Şekil 1.1 - "Beyaz Şehir" programının ana penceresi

"DBF Converter", çok yönlü ancak kullanımı kolay bir dönüştürme programıdır. Bu program sihirbaz benzeri bir arayüze sahiptir, ancak bir grup dosyayı işlemek için bir komut satırı yardımcı programı olarak da kullanılabilir. "DBF Dönüştürücü", XML, CSV, TXT, HTML, RTF, PRG ve diğerleri gibi tüm modern veri alışverişi biçimlerini destekler. DBF tablolarını, herhangi bir SQL veritabanına aktarılabilen SQL betiğine dönüştürme yeteneği uygulandı.

Basit dönüşümlere ek olarak, "DBF Converter", yalnızca belirli sütunları seçerek ve filtreler uygulayarak verileri değiştirmenize olanak tanır. Genellikle diğer DBF uygulamalarında bulunan basitleştirilmiş filtreleme kurallarının aksine, "DBF Converter" dinamik olarak oluşturur. basit şekiller veritabanı kayıtları. Basit bir kaydın herhangi bir alanında gelişmiş maske ve kurallar belirleme yeteneği, DBF Converter'da bulunan en değerli özelliklerden biridir. Bu yazılımın ana dezavantajı, 29,95 dolarlık maliyetidir.

Ana uygulama penceresi Şekil 1.2'de gösterilmiştir.

Şekil 1.2 - "DBF Converter" programının ana penceresi

"DBF View", DBF dosyalarıyla çalışmak için ücretsiz, derli toplu ve kullanışlı bir programdır. Kurulum gerektirmez, ek sürücüler ve kitaplıklar olmadan çalışır.

Ana avantaj, hız açısından birçok SQL'i aşan evrensellik, hızlı ve esnek doğrusal aramadır.

Ek özellikler:

Maskeye göre ara (desen);

Verileri düzenleme, değiştirme, silme, oluşturma, ekleme;

Alanları sıralama;

Çok dillilik ve yeni sözlüklerin oluşturulması;

DBF, TXT, CSV, SQL, XML'i içe ve dışa aktarın;

DOS, Windows, translit ve diğerlerine yeniden kodlama;

Başlatma şifresi;

Kayıt geçmişi.

Bu yazılımın ana dezavantajı, dönüştürürken şablon oluşturamamaktır. Programın ana penceresi Şekil 1.3'te gösterilmiştir.

Şekil 1.3 - "DBF Görünümü" programının ana penceresi

1.4 Sorun bildirimi, sistem gereksinimleri, çıktı verileri ve çıktı formları için gereksinimler

Görevi inceledikten, alaka düzeyini inceledikten ve mevcut dönüştürücü programlarını analiz ettikten sonra bir liste derlendi. gerekli gereksinimler Geliştirilen yazılım için

Yazılım ürününde aşağıdaki işlevler gerçekleştirilmelidir:

dbf dosyalarının içeriğini okumak;

İki editörden birinde şablon oluşturma;

Şablon düzenleme;

dbf dosyalarını dönüştürme sırasını seçme;

Şablonların yürütülmesi;

Hata kaydı;

Programın sonuçlarını bir XML dosyasına kaydetme.

Yazılım, Microsoft Visual Studio 2008'de yazılmıştır ve aşağıdakileri çalıştırmayı gerektirir:

Sürümlerden birinin Windows ailesinin işletim sistemi: Windows Vista, Windows 7 veya Windows 8;

Microsoft .NET Çerçevesi 4;

Visual FoxPro ODBC Sürücüleri.

Yazılım ürünü için minimum sistem gereksinimleri, işletim sistemi için minimum gereksinimlere karşılık gelir.

Giriş verileri dBase II, dBase III veya dBase IV sürüm dbf dosyaları olabilir.

Çıktı dosyaları, dil sürümü 1.x olan ve herhangi bir tarayıcıyı destekleyen bir XML biçim dosyası olmalıdır.

Girdi ve çıktı dosyalarına giden yol isteğe bağlı olabilir.

2 . YAZILIM ÜRÜNÜNÜN YAPI VE MİMARİ TASARIMI

2.1 Uygulama yöntemleri ve araçlarının seçimi, gerekçesi

Yazılım ürününün geliştirilmesi için entegre geliştirme ortamı Microsoft Visual Studio 2008 seçilmiştir.

Visual Studio 2008 - .NET Framework 3.5 ile birlikte 19 Kasım 2007'de yayınlandı. Windows Vista işletim sistemi (ancak XP'yi de destekler), Office 2007 ve web uygulamaları için uygulamalar oluşturmayı amaçlamaktadır. LINQ, C#'ın yeni sürümleri ve Visual Basic'i içerir. Stüdyo Visual J# içermiyordu. Avantajlarından biri tamamen Rus arayüzüdür.

Visual Studio, IntelliSense teknolojisini destekleyen ve kodu kolayca yeniden düzenleme yeteneğine sahip bir kaynak kodu düzenleyicisi içerir. Yerleşik hata ayıklayıcı, hem kaynak düzeyinde hata ayıklayıcı hem de makine düzeyinde hata ayıklayıcı olarak çalışabilir. Diğer gömülebilir araçlar, bir uygulamanın GUI'sinin oluşturulmasını basitleştirmek için bir form düzenleyici, bir web düzenleyici, bir sınıf tasarımcısı ve bir veritabanı şeması tasarımcısı içerir. Visual Studio, kaynak kodu sürüm kontrol sistemleri (Subversion ve Visual SourceSafe gibi) için destek ekleme, yeni araç setleri (örneğin, düzenleme ve görsel kod tasarımı için) etki alanına özgü programlama dillerinde veya yazılım geliştirme sürecinin diğer yönleri için araçlarda (örneğin, Team Foundation Server ile çalışmak için Team Explorer istemcisi).

Tüm Visual Studio 2008 C# tabanlı çalışma ekranı özellikleri şunları içerir:

Nesne etkileşimi dilinde görevleri formüle etme yeteneği;

Program kodunun yüksek modülerliği;

Kullanıcıların isteklerine uyarlanabilirlik;

Yüksek derecede program yeniden kullanılabilirliği;

Çok sayıda bağlantılı kitaplık.

2. 2 Uygulanan algoritmaların açıklaması

Bu yazılımın geliştirilmesinde iki ana zorluk ayırt edilebilir: programlanabilir şablonlar için bir tanıyıcı oluşturmak ve yapıcı kullanılarak oluşturulan şablonlarda kullanılacak bir programlama modeli oluşturmak.

1. Programlanabilir modeller. Şablonlarda kullanılan kod, programlama dillerinde kullanılan koda biraz benzediği için, bu tanıyıcının kod derleyicinin bazı işlevlerini, daha doğrusu ayrıştırma işlevlerini üstlenmesi gerekir. Derleyicinin yapısında, ayrıştırma kısmı sözcüksel, sözdizimsel ve anlamsal analizden oluşur. Sözcüksel çözümleyici, kaynak dildeki program karakterlerini okur ve bunlardan kaynak dil sözcüklerini oluşturur. Çalışmasının sonucu bir tanımlayıcı tablosudur. Ayrıştırıcı ayıklamayı gerçekleştirir sözdizimsel yapılar sözcük çözümleyici tarafından işlenen kaynak program metninde. Programın sözdizimsel kurallarını dilin grameri ile uyumlu hale getirir. Ayrıştırıcı, giriş dilinin bir metin tanıyıcısıdır. Semantik çözümleyici, giriş dilinin anlamı açısından kaynak programın metninin doğruluğunu kontrol eder.

Kod yardımıyla, aşağıdaki özellikler gerçekleştirilmelidir: bir döngü oluşturma, satır ve sütun sayıları ile ilgili verileri alma ve görüntüleme, veri türü ve sütun adlarını alma ve ayrıca veritabanı hücrelerinin içeriğini alma. Bunu yapmak için önce hepsinin bir listesini yapmalısınız. olası durumlar makine. Tanıyıcının olası durumları Tablo 2.1'de sunulmuştur.

Tablo 2.1 - Olası tanıyıcı durumlarının listesi

Durum Dizini

Durum

Tanım

Değişken

Döngü sayacı

Bir döngünün başlangıcını belirten hizmet sözcüğü

Döngünün çıkış koşulunu gösteren hizmet sözcüğü

Daha fazla referansın temel sütunlara olacağını belirten işlevsel kelime

Daha fazla referansın temel dizgelere olacağını belirten fonksiyonel kelime

Miktar

Önceki aramanın ne olduğuna bağlı olarak satır veya sütun sayısını gösteren işlevsel sözcük

Erişilecek sütunun veri tipinin çıktısını gösteren fonksiyonel kelime

İsim

İtirazın takip ettiği sütunun adının çıktısını gösteren işlevsel sözcük

Hizmet sözcüklerini ayıran özel karakter

= (eşittir işareti)

Döngü başladığında değişkene hangi değerin atanacağını gösteren özel bir karakter.

[ (açık parantez)

] (yakın parantez)

Belirli bir sütuna veya satıra erişildiğini gösteren özel bir karakter

herhangi bir tamsayı

Derlenen tabloya dayanarak, olası durum geçişlerinin sonlu durum makinesini oluşturmak mümkündür. Şekil 2.1 bir durum makinesini göstermektedir.

Şekil 2.1 - Olası geçişlerin sonlu durum makinesi

Oluşturulan otomat temelinde, geri dönüşlü (alternatiflerin seçimi ile) azalan bir tanıyıcı oluşturmak mümkündür. Bir dizenin bir dilbilgisine ait olup olmadığını belirlemek için azalan bir geri izleme tanıyıcı kullanılır. Mevcut durumu analiz eder, mevcut durumdan bir sonraki duruma geçiş kuralı arar, bir sonraki durum eşleşirse sonraki durum için prosedür tekrarlanır. Tanıyıcı mevcut durumdan bir sonrakine geçiş kuralı bulamazsa, bu zincir bu dilbilgisine ait değildir, yani kod satırı mantıksal bir hatayla yazılmıştır. Birkaç geçiş seçeneği varsa, tanıyıcı alternatifin ortaya çıktığı durumu hatırlar ve zincir dilbilgisine ait değilse ona geri döner. Şekil 2.2, geri izlemeli, aşağı bakan bir çözümleyiciyi göstermektedir.

Şekil 2.2 - Geri İzlemeli Aşağı Doğru Çözümleyici

Şablon analizi sırasında, hangi şablonda hata olduğu, hangi kod satırında ve hatanın türü hakkında bilgi içeren bir hata günlüğü tutulur. Hatalar aşağıdaki türlerde olabilir: tanınmayan tanımlayıcı (verilen kod tarafından sağlanmayan hizmet sözcüklerini veya özel karakterleri kullanma girişimi), mantıksal anlamın ihlali (kod satırı tanıyıcıyı geçmedi), bir girişim olmayan bir değişkene erişmek için (oluşturulmamış bir değişkene bir değişkene erişmek veya döngü dışında bir değişkene erişmek), döngünün başlangıcı belirtilmez (döngünün başlangıcı ve sonu, açılış ve kapanış şeklinde belirtilmelidir) süslü parantezler).

2. Yapıcı kullanılarak oluşturulan şablonlar. Çözümlerden biri, kullanılan yapıdır. mantıksal diller programlama: bu durumda bir veritabanı tablosunun içeriği olan ortak girdi bilgilerine koşul filtreleri uygulayın. Şekil 2.3, bir veritabanı tablosunun genel yapısını göstermektedir.

Şekil 2.3 - Veritabanı tablosunun genel yapısı

3. Uygulama olarak “Doğruluk Tablosu” kullanılarak bir çözüm seçilmiştir. Bu tablo, n+1 sütun ve m+1 satır içeren bir tablodur; burada n ve m, girdi tablosundaki sütun ve satır sayısıdır. Her tablo hücresi, doğru veya yanlış bir değer saklar. Şekil 2.4 "Doğruluk Tablosunu" göstermektedir.

Şekil 2.4 - "Doğruluk tablosu"

Bir filtre uygulandığında, filtrenin neye uygulandığına bağlı olarak true değerleri false ile değiştirilir. Filtre, hücrelerin içeriğine uygulanmışsa, değerler her hücre için özel olarak ve satırlara veya sütunlara ise, o zaman yalnızca ek bir satır veya sütunda değişecektir.

Bir veritabanıyla çalışırken, aşağıdaki varlıklar ayırt edilebilir: satır dizini, sütun dizini, satır sayısı, sütun sayısı, sütun türü, sütun adı, hücre içeriği.

Koşullar da belirlendi:<», «>”, “=”, “içerir”, “eşleşir”.

4. Seçilen varlıklar ve koşullar, olası tüm verileri görüntülemek veya her türlü koşulu dayatmak için yeterlidir. Şekil 2.5, filtre uygulanmış "Doğruluk Tablosunu" göstermektedir.

Şekil 2.5 - Filtre uygulanmış "Doğruluk tablosu"

Bir XML dosyasına bilgi çıktısı alırken, program neyin çıktısı alınması gerektiğini belirler ve ardından "Doğruluk Tablosu"nu kullanarak yalnızca gerçek değere karşılık gelen değerleri verir.

Bir şablon düzeni oluşturmak için şu etiket türleri oluşturuldu: ana, basit, genel, blok. Asıl olan etikettir, bir belgede bu türden yalnızca bir tane olabilir ve gereklidir, XML belgesi hakkında bilgi içerir. Basit - bu türdeki etiketler, verileri görüntülemenin ve "Doğruluk Tablosu"na koşulları dayatmanın tek yoludur. Şu bölümlerden oluşurlar: başlık, kaynak ve durum. Kaynak ve koşul olarak önceden seçilen varlıklar kullanılır. etiket varsa boş isim, içeriği görüntülenmeyecek, ancak "Doğruluk Tablosu" üzerindeki koşul uygulanacaktır.

Global - bu türdeki etiketler mantıksal bir yük taşımazlar, yalnızca çıktı için gereklidirler.

Blok - bu tür etiketler, basit etiketlerin mantığını birleştirmek için gereklidir ve blok etiketinde yazılan her şey, "Doğruluk Tablosunu" karşılayan her hücre için görüntülenecektir. Blok etiketinin kendisi XML belgesinde görüntülenmez.

2.3 Yazılım ürününün yapısı, mimarisi

Nesne yönelimli programlamanın merkezinde, bir sistemin mantıksal modelinin sınıf diyagramı biçiminde geliştirilmesi yer alır. Sınıf diyagramı (sınıf diyagramı), nesne yönelimli programlama sınıflarının terminolojisinde sistem modelinin statik yapısını temsil etmeye yarar. Sınıf diyagramı, özellikle şunları yansıtabilir: çeşitli ilişkiler nesneler ve alt sistemler gibi konu alanının bireysel varlıkları arasında ve ayrıca bunların iç yapılarını ve ilişki türlerini tanımlar.

Bu diyagramdaki sınıf (sınıf), diğer sınıfların nesneleri ile aynı yapıya, davranışa ve ilişkilere sahip olan bir dizi nesneyi belirtmek için kullanılır. Grafiksel olarak, sınıf, ek olarak yatay çizgilerle bölümlere veya bölümlere bölünebilen bir dikdörtgen olarak tasvir edilir. Bu bölümler, sınıf adını, öznitelikleri (değişkenler) ve işlemleri (yöntemler) içerebilir.

Hariç dahili cihaz veya sınıf yapıları, ilgili diyagram sınıflar arasındaki ilişkiyi gösterir:

Bu uygulama için Tablo 2.2'de açıklanan sınıflar tahsis edilmiştir.

Tablo 2.2 - Yazılım ürününde kullanılan sınıfların açıklaması

Dönüştürücü uygulamasının sınıf diyagramı Şekil 2.6'da gösterilmiştir. Diyagramdan, MyCode sınıfının Template sınıfının bir değişkeni olduğunu görebilirsiniz. Template sınıfı şu alanları içerir: dt, lv, thisTemplate, mycode, fs, sr, sw, correct, masCode, masPerem, masPeremCount, masSost, masCodeLength. dt, veritabanında saklanan bilgileri içeren bir DataTable tipi değişkendir; lv - ListView türünde bir değişken, şablonlardaki hata mesajlarının yazıldığı bir arayüz nesnesi; thisTemplate - değişken dize türü, şu anda işlenmekte olan şablonun adını belirten; mycode - bu şablonda bulunan tüm kod parçaları hakkında bilgi depolayan MyCode sınıfının bir dizisi; fs - programın hangi dosyayla çalışacağını belirleyen FileStream türünde bir değişken; sr - bilgilerin hangi dosyadan okunacağını belirleyen StreamReader türünde bir değişken; sw, hangi dosya bilgilerinin yazılacağını belirleyen bir StreamWriter tipi değişkendir; doğru - geçerli kod parçasının doğru işlenip işlenmediğini gösteren bir bool tipi değişken; masCode - şablonda bulunan tüm kod satırlarını içeren bir dize türü dizisi; masCodeLength - şablonda kaç satır kod bulunduğunu gösteren bir int değişkeni; masPerem - oluşturulan değişkenlerin adını ve değerini içeren iki boyutlu dize türü dizisi; masPeremCount - şu anda kaç değişkenin yaratıldığını gösteren int türünde bir değişken; masSost, geçerli kod satırı için makine durumlarının bir listesini içeren int türünde bir dizidir.

Sınıf ayrıca şunları içerir: aşağıdaki yöntemler: Bağlan, Ara, Analiz Et, Kontrol Et, Kod Yürüt. Connect yöntemi, verilen yoldaki şablona bağlanır. Arama yöntemi, bir şablonda kod parçacıklarını bulur. Analyze yöntemi, bir kod satırı için durumları belirler. Check yöntemi özyinelemelidir, bir dizenin mantıksal geçerliliğini belirler. ExecuteCode yöntemi, geçerli şablonu yürütür. Tanımlanan sınıflar için bir sınıf diyagramı oluşturabilirsiniz. Şekil 2.6 bir sınıf diyagramıdır.

Şekil 2.6 - Sınıf diyagramı

2.4 Fonksiyonel diyagram, yazılım ürününün fonksiyonel amacı

Yazılım ürünü, bilgileri benzersiz algoritmalarla işlemek için iki olası seçenek geliştirmiştir.

Kullanıcı kod şablonları kullanıyorsa, önce girdi dosyalarını belirtmeli, ardından ya oluşturmalı yeni şablon veya varolan birini seçin. Ardından, kullanıcı çıktı dosyasının dizini ve adını belirtir ve dönüştürme işlemini başlatır. Bu işlem sırasında, önce şablondaki kod bölümleri tahsis edilir, ardından bölümlerin her birine sözlükler tahsis edilir, ardından mantıksal anlamları belirlenir ve şablon çalıştırılır. Bu aşamalardan herhangi birinde hatalar meydana gelirse, bunlarla ilgili bilgiler hata günlüğüne kaydedilir. Tüm şablonları yürüttükten sonra, kullanıcı çıktı dosyasını kullanabilir.

Yapıcı kullanılarak oluşturulan şablonları kullanırsanız, kullanıcının dönüştürülmesi gereken veritabanını belirtmesi, ardından çıktı dosyasının dizinini belirtmesi, bir şablon oluşturması ve dönüştürme işlemini başlatması gerekir. Dönüştürmenin kendisi iki bölümden oluşur: şablona dayalı bir doğruluk tablosu oluşturmak ve dönüştürmeyi doğruluk tablosuna göre yürütmek. Çıktı dosyası daha sonra kullanıcı tarafından amaçlandığı şekilde kullanılabilir.

Mezuniyetin ikinci bölümünde nitelikli çalışma geliştirme araçları, yani Microsoft Visual Studio 2008 seçildi, yazılım ürününün uygulanması için ana yöntemler ve yapısı da tanımlandı. Yazılım ürününün işlevsel diyagramı da açıklanmıştır.

İkinci bölümde ele alınan başlıca noktalar şunlardı:

Uygulama için yöntem ve araçların seçimi, gerekçesi;

Uygulanan algoritmaların tanımı;

Yazılım ürününün yapısı, mimarisi;

Fonksiyonel diyagram, yazılım ürününün fonksiyonel amacı.

3 . UYGULAMAVE TESTYAZILIM ÜRÜNÜ

3.1 Uygulama Açıklaması

Bu yazılım ürününün uygulanmasındaki zorluklardan biri, bir tanıyıcı algoritması yazmaktır. Algoritmanın tamamı şu yöntemlerle tanımlanır: Search, Analize, Check, ExecuteCode.

Search yöntemi, deseni okur ve her iki tarafında "*" karakterleriyle işaretlenmiş kod parçalarını bulur ve bunları .

genel geçersiz Arama()

boolsign=yanlış;

while (!sr.EndOfStream)

if ((c != "*") && (işaret == doğru))

( s += c.ToString(); )

if ((c == "*") && (işaret == yanlış))

if ((c == "*") && (işaret == doğru))

maskeKodu = s;

masCodeLength++; )

s += c.ToString(); ))

kodum = yeni Kodum ;)

Analize yöntemi, bir kod satırını ayrı belirteçlere böler ve her birinin durumunu belirler, dil tarafından sağlanmayan semboller veya kelimeler kullanılırsa veya yanlış değişken adları kullanılırsa, uygun bir hata mesajı hata günlüğü. Tam liste kullanılan sözcükbirimleri Tablo 2.1'de sunulmuştur.

genel geçersiz Analiz()

( string masIdent = yeni string;

int masIdentLength = 0;

bool işareti = doğru;

için (int a = 0; a< masCodeLength; a++)

(doğru=yanlış;

masIdentLength = 0;

masCode[a] = masCode[a].Trim();

masCode[a] = masCode[a].ToLower();

için (int b = 0; b< masCode[a].Length; b++)

( c = masCode[a][b];

masIdentLength++; )

maIdent = ".";

masIdentLength++;

eğer ((c == " ") && (s != ""))

(masIdent = s;

masIdentLength++;

(masIdent = s;

masIdentLength++; )

kodum[a] = yeni Kodum("", null);

için (int z = 0; z< masIdentLength; z++)

kodum[a].kod += masIdent[z] + " ";

kütleSost = yeni int;

Yöntemin önceki bölümünde, bulunan tüm belirteçler masIdent dizisine yazıldı, ardından bulunan tüm belirteçler için durumun belirlendiği ve masSost dizisine yazıldığı bir döngü başlatıldı.

için (int b = 0; b< masIdentLength; b++)

if (masIdent[b] == "için")

else if (masIdent[b] == "önce")

else if (masIdent[b] == "sütun")

else if (masIdent[b] == "dize")

if (Char.IsLetter(masIdent[b]))

( bool f = doğru;

için (int d = 1; d< masIdent[b].Length; d++)

if (!Char.IsLetterOrDigit(masIdent[b][d]))

eğer (f == true) kütleSost[b] = 1 ise; başka

Bulunan kimlik yoksa hata günlüğüne bir hata girişi ekleme.

lv.Items.SubItems.Add("Tanınmayan tanımlayıcı " + masIdent[b]); )) başka

lv.Items.SubItems.Add(kodum[a].kod);

lv.Items.SubItems.Add("Tanınmayan tanımlayıcı " + masIdent[b]);))

kodum[a] = yeni Kodum(kodum[a].kodu, masSost);

Kontrol(0, kütleSost, a); )

Check yöntemi, geri dönüşlü bir azalan çözümleyicinin çalışmasına dayanmaktadır: mevcut durum belirlenir, mümkünse, ardından bir sonrakine geçiş yapılır. Mümkün değilse, durum alternatif bir duruma geçer, yoksa, hata günlüğüne bir hata mesajı eklenir.

genel geçersiz Kontrol(int a, int s, int indc)

( if (masSost[a] == s)

( if ((s == 1) && (a == 0))

doğru=doğru; ) başka

eğer ((s == 2) && (a == 0)) s = 1; başka

eğer (((s == 4) || (s == 5)) && (a == 0)) s = 8; başka

eğer ((s == 1) && (a == 1)) s = 9; başka

eğer ((s == 8) && (a == 1)) s = 6; başka

eğer ((s == 10) && (a == 1)) s = 1; başka

eğer ((s == 9) && (a == 2)) s = 12; başka

eğer ((s == 6) && (a == 2))

( if (a == masSost.Length - 1)

doğru=doğru; ) başka

eğer (((s == 1) || (s == 12)) && (a == 2)) s = 11; başka

eğer ((s == 12) && (a == 3)) s = 3; başka

eğer ((s == 11) && (a == 3)) s = 8; başka

eğer ((s == 3) && (a == 4)) s = 12; başka

eğer ((s == 8) && (a == 4))

( eğer (masSost == 4)

eğer ((s == 6) && (a == 7))

( if (a == masSost.Length - 1)

doğru=doğru; )

if (((s == 12) || (s == 1)) && (a == 7))

eğer ((s == 11) && (a == 8))

( if (a == masSost.Length - 1)

doğru=doğru; )

Giriş durumları dizisi çözümleyici tarafından yapılan kontrolden geçerse ve tüm durumlar eşleşirse, doğru değişken true olarak ayarlanır ve bir yerde bir uyumsuzluk varsa, o zaman dönüş yapılır ve alternatif bir durum için kontrol edilir.

eğer (doğru == yanlış)

Kontrol(a, s, indc); ) )

eğer ((s == 8) && (a == 1))

Kontrol(a, s, indc); )

eğer ((s == 1) && (a == 2))

Kontrol(a, s, indc);)

eğer ((s == 1) && (a == 7))

Kontrol(a, s, indc); )

Yapılan geçiş tanınmadıysa, işlenmekte olan kod satırı mantıksal olarak geçersiz kabul edilir ve hata günlüğüne uygun bir hata girişi eklenir.

eğer (doğru == yanlış)

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(masCode);

lv.Items.SubItems.Add("Satırın mantıksal anlamı ihlal edilmiştir");

kodum.doğru = yanlış;

ExecuteCode yöntemi, program satırlarını yürüterek şablonun içeriğini çıktı dosyasına yazar. Bir döngü ile karşılaşılırsa, döngü içeriğinin yazıldığı geçici bir dosya oluşturulur ve döngü tamamlanana kadar bu dosyanın içeriği yürütülür. Bu, iç içe döngüleri yürütmek için gereklidir.

genel geçersiz ExecuteCode(int NCode, bool cikcle, StreamReader sr, StreamWriter sw, int tempF)

while (!sr.EndOfStream)

c = Convert.ToChar(sr.Read());

Algoritma, girdi dosyasını karakter karakter okur, eğer döngünün sonu anlamına gelen bir kapanış kaşlı ayraç varsa ve cikcle değişkeni doğruysa, bu, yöntemin iç içe olduğu anlamına gelir ve onu sonlandırır.

if ((c == ")") && (cikcle == true))

Okunan karakter "*" değilse, bu, karakterin kod komutlarına ait olmadığı ve basitçe çıktılanması gerektiği anlamına gelir.

Okunan karakter "*" ise algoritma bir sonraki karakteri okur, "*" ise bu, kullanıcının bu karakteri çıktı dosyasına çıkarmak istediği anlamına gelir.

( c = Convert.ToChar(sr.Read());

Bir sonraki karakter "*" değilse, bu, "*" den önceki sonraki tüm karakterlerin kod komutlarına atıfta bulunduğu anlamına gelir.

eğer (kodum.doğru == doğru)

if (mycode.masSost == 1)

( bool oluştur = yanlış;

için (int a = 0; a< masPeremCount; a++)

( if (masPerem == mycode.code)

sw.Write(masPerem);

while (sr.Read() != "*")

Kullanıcı, kodda daha önce bildirilmemiş bir değişkeni görüntülemeye çalışırsa, hata günlüğüne bir hata girişi yazılır ve uzak kod artık yürütülmez.

eğer (oluştur == yanlış)

( lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add("Var olmayan bir değişken gösterilmeye çalışılıyor");

kodum.kod = ""; )

while (sr.Read() != "*")

if (mycode.masSost == 4)

(eğer (mycode.masSost == 6)

sw.Write(dt.Columns.Count.ToString());

while (sr.Read() != "*")

eğer (Convert.ToInt32(mycode.masValue)< dt.Columns.Count)

(eğer (mycode.masSost == 7)

sw.Write(dt.Columns.masValue)].DataType.Name);

sw.Write(dt.Columns.masValue)].ColumnName);)

Kullanıcı var olmayan bir sütuna veya satıra erişmeye çalışırsa ilgili hata girişi hata günlüğüne eklenir.

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(kodum.kod);

kodum.kod = ""; )

while (sr.Read() != "*")

( bool oluştur = yanlış;

için (int a = 0; a< masPeremCount; a++)

eğer (Convert.ToInt32(masPerem)< dt.Columns.Count)

(eğer (mycode.masSost == 13)

sw.Write(dt.Columns)].ColumnName);

sw.Write(dt.Columns)].DataType.Name);

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(kodum.kod);

lv.Items.SubItems.Add("Dizin kapsam dışında");

kodum.kod = ""; )

while (sr.Read() != "*")

eğer (oluştur == yanlış) (

Kullanıcı, var olmayan bir değişkeni sütun veya satır dizini olarak belirtirse, hata günlüğüne ilgili bir hata girişi eklenir.

lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(kodum.kod);

lv.Items.SubItems.Add("Var olmayan bir değişkene erişmeye çalışılıyor");

while (sr.Read() != "*")

if (mycode.masSost == 5)

( int n1 = 0, n2 = 0, nn = 0;

if (mycode.masSost == 6)

( sw.Write(dt.Rows.Count.ToString());

while (sr.Read() != "*")

(eğer (mycode.masSost == 12)

( ( n1 = Convert.ToInt32(kod.masDeğerim);

if (mycode.masSost == 12)

( n2 = Convert.ToInt32(kodum.masDeğerim);

( bool oluştur = yanlış;

için (int a = 0; a< masPeremCount; a++)

if (masPerem == mycode.masValue)

n2 = Convert.ToInt32(masPerem);

Bir değişken, bir sütunun veya satırın indeksi olarak kullanılmışsa ve değeri, sırasıyla tablonun sütun veya satır sayısını aşarsa, hata günlüğüne bu hatayla ilgili bir giriş eklenir.

Else ( if (n1 >= dt.Rows.Count)

( if (mycode.code != "")

(lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(kodum.kod);

lv.Items.SubItems.Add("Dizin " + n1 + " aralık dışında");))

eğer (n2 >= dt.Columns.Count)

( if (mycode.code != "")

( lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(kodum.kod);

lv.Items.SubItems.Add("Dizin " + n2 + " aralık dışında"); ))

kodum.kod = ""; )

while ((sr.Read() != "*") && (!sr.EndOfStream))

if (mycode.masSost == 2)

masPerem = kodum.masValue;

masPerem = kodum.masValue;

nk = masPeremCount;

masPeremCount++;

if (mycode.masSost == 12)

k = Convert.ToInt32(kod.masDeğerim); başka

if (mycode.masSost == 4) k = dt.Columns.Count;

başka k = dt.Rows.Count;

while (sr.Read() != "*") ( )

Kullanıcı bir döngü bildirdiyse ve bundan sonra "(" koymadan başlangıcını belirtmediyse, bu bir hata olarak kabul edilir ve hata günlüğüne bununla ilgili bir giriş eklenir.

c = Convert.ToChar(sr.Read());

c = Convert.ToChar(sr.Read());

c = Convert.ToChar(sr.Read());

( lv.Items.Add(thisTemplate, thisTemplate);

lv.Items.SubItems.Add(kodum.kod);

lv.Items.SubItems.Add("Döngü başlangıcı belirtilmedi");

kodum.doğru = yanlış;

NCode++; ) başka (

Döngünün başlangıcı doğru belirtilirse, döngülerin iç içe geçme derinliğinden sorumlu değişken bir artırılır, ")" işaretine kadar döngünün içeriği geçici bir dosyaya, bir kopyaya yazılır. değişkenlerin değerlerini içeren diziler oluşturulur ve bu özyinelemeli yöntem zaten bu geçici dosya için başlatılır.

Directory.CreateDirectory("Sıcaklık");

StreamWriter sw1=new StreamWriter("Temp\\Temp"+tempF.ToString()+".txt", false, Encoding.UTF8);

c = Convert.ToChar(sr.Read());

c = Convert.ToChar(sr.Read()); )

int devirSayı = 0;

while (c != ")")

eğer (sr.EndOfStream)

c = Convert.ToChar(sr.Read());

if ((c == ")") && (cickleCount != 0))

( cickleCount--;

c = Convert.ToChar(sr.Read()); ) )

StreamReader sr1 = yeni StreamReader("Temp\\Temp" + tempF.ToString() + ".txt", Encoding.UTF8);

int CickleCode = 0;

bool işareti2 = yanlış;

while (!sr1.EndOfStream)

( c = Convert.ToChar(sr1.Read());

if ((c != "*") && (işaret2 == doğru))

( s1 += c.ToString(); )

if ((c == "*") && (sign2 == false))

if ((c == "*") && (işaret2 == doğru))

( işaret2 = yanlış;

başka s1 += c.ToString(); ) )

for (int a = Convert.ToInt32(kod.masDeğerim); a< k; a++)

( masPerem = a.ToString();

ExecuteCode(NCode + 1, true, new StreamReader("Temp\\Temp" + tempF.ToString() + ".txt", Encoding.UTF8), sw, tempF);)

Döngü sona erdikten sonra geçici dosya silinir ve döngülerin iç içe geçme derinliği bir azaltılır.

masPerem = "";

masPerem = "";

NKodu = CickleKodu + 1;

File.Delete("Temp\\Temp" + tempF.ToString() + ".txt");

Yapıcı kullanılarak oluşturulan şablonlarla çalışma algoritması aşağıdaki yöntemlerle açıklanır: Execute, GetTruthTable, ExecuteTag.

Execute yöntemi, şablon işleme başladığında bir kez çağrılır. Bu yöntem haricidir ve diğer yöntemler ondan çağrılır. Başlangıçta, yöntem bir çıktı dosyası ve bir "Doğruluk Tablosu" oluşturur.

DataTable Truthdt=new DataTable();

StreamWriter sw=new StreamWriter(textBox4.Text+"Çıktı dosyası.xml",false,Encoding.UTF8);

için (int a = 0; a<= dt.Columns.Count;a++)

truedt.Columns.Add("",typeof(bool));

için (int a = 0; a<= dt.Rows.Count; a++)

( DataRow dr = truedt.NewRow();

için (int b = 0; b< dr.ItemArray.Length; b++)

truedt.Rows.Add(dr); )

Bundan sonra döngü, türünü belirleyen her etiketi vurgulayarak ve buna bağlı olarak yürütmeye başlar.

iken (!tamamlandı)

( tagind = GetTagIndex(Items);

if (mastag.type == type.global || mastag.type == type.main)

if (mastag.type == type.block)

eğer (Öğeler >= ürün sayısı)

tam=doğru; )

Etiket türü global veya ana ise, etiketin içeriği basitçe dosyaya yazılır.

if (mastag.name != "")

sw.WriteLine(öğeler);

Etiket türü blok ise, bu parçaya ait tüm etiketlerin listesi ayrı bir diziye yazılır ve ayrıca bu listede değerleri görüntülemek için dize indeksleme gerektiren etiketlerin olup olmadığı da belirlenir.

bool haveRow = yanlış;

etiket engelleme etiketi = yeni etiket.indF - mastag.indS - 1];

için (int a = mastag.indS + 1, b = 0; a< mastag.indF; a++, b++)

( blok etiketi[b] = matag;

if (blocktag[b].type == type.simple)

if (blocktag[b].source == "satır dizini" || blocktag[b].source == "hücre içeriği")

varSatır = doğru;)

Bundan sonra bir "doğruluk tablosu" oluşturulur ve listede bulunan basit etiketlerin tüm koşulları ona uygulanır.

Truthdt=CreateTable(truthdt,dt);

için (int a = 0; a< blocktag.Length; a++)

if (blocktag[a].type == type.simple)

hakikatdt = GetTruthTable(dt, hakikat, blok etiketi[a]);

Ayrıca, dize indekslemeyi kullanan etiketlerin bulunup bulunmadığına bağlı olarak, ya yalnızca bir sütun döngüsü oluşturulur ya da blok etiketler dışında karşılaşılan tüm etiketlerin yürütüldüğü sütunlar ve satırlar boyunca döngüler oluşturulur.

için (int a = 0; a< dt.Rows.Count; a++)

için (int b = 0; b< dt.Columns.Count; b++)

bool wasEx = yanlış;

StreamWriter swt = yeni StreamWriter("temp.txt", false, Encoding.UTF8);

için (int c = 0; c< blocktag.Length; c++)

if (blocktag[c].type == type.global)

if (blocktag[c].name != "")

swt.WriteLine(itemler.indS + c + 1]);

if (blocktag[c].name != "")

wasEx=ExecuteTag(dt, truedt, blok etiketi[c], a, b, swt); )

( StreamReader sr = new StreamReader("temp.txt", Encoding.UTF8);

sw.Write(sr.ReadToEnd());

File.Delete("temp.txt");

( for (int a=0;a

için (int c = 0; c< blocktag.Length; c++)

( if (blocktag[c].type == type.global)

if (blocktag[c].name != "")

sw.WriteLine(itemler.indS + c + 1]);

if (blocktag[c].type == type.simple)

if (blocktag[c].name != "")

ExecuteTag(dt, truedt, blok etiketi[c], 0, a, sw);

Etiket tipi basit ise, bunun için yeni bir "Doğruluk Tablosu" oluşturulur ve etiket yürütülür.

if (mastag.type == type.simple)

( truedt=CreateTable(truthdt,dt);

DataTable tempdt = GetTruthTable(dt, truedt, mastag);

if(mastag.name!="")

ExecuteTag(dt, tempdt, matag, 0, 0, sw);

GetTruthTable yöntemi, koşulları "Doğruluk Tablosu"na uygular. Argüman olarak, veritabanından değerler içeren bir tablo, önceden oluşturulmuş "Doğruluk Tablosu" ve durumu işlenmesi gereken bir etiket alır.

ExecutTag yöntemi basit bir etiketi yürütür. Argüman olarak bir veri tablosu, bir "doğruluk tablosu", bir etiket, bir satır dizini, bir sütun dizini ve bir dosya yazma akışı alır.

3.2 Kullanıcı arabiriminin açıklaması

Programın ana penceresi birkaç bölüme ayrılmıştır: ".dbf", "Şablonlar", ".xml" ve hata günlüğü. Günlük dışındaki tüm bölümlerde, dosyaları içeren veya dosyaların kaydedilmesi gereken dizinleri seçmekten sorumlu öğeler vardır. Hata günlüğü, üç sütundan oluşan bir liste olarak sunulur: "pattern", "string", "error". İlk sütun, hatanın bulunduğu şablonun adını içerir. İkinci olarak, hatanın oluştuğu satır. Üçüncüsü, hata türü.

Ayrıca formda herhangi bir gruba ait olmayan öğeler bulunmaktadır. Bazıları işin ilerleyişini yansıtırken, diğerleri süreci kendisi başlatır.

Şekil 3.1, programın ana penceresi olan ana formu göstermektedir.

Şekil 3.1 - Programın ana penceresi

Şablonlarla çalışırken, şablon adı için bir alan, şablon kodunu içeren bir öğe ve şablonu kaydetme ve pencereyi kapatma düğmelerinden oluşan ek bir program penceresi açılır.

Şekil 3.2, ek program penceresinin (şablon düzenleyici) bir görünümünü göstermektedir.

Şekil 3.2 - Şablon düzenleyici penceresi

Ayrıca ana formda, yapıcıyı kullanarak şablon oluşturmak için formu açan bir kontrol vardır.

Oluşturucu formu aşağıdaki kontrolleri içerir: önceden oluşturulmuş etiketlerin listesi, yeni bir etiketin adını girmek için bir alan, bir etiket türü seçmek için bir açılır liste, bir etiket kaynağı seçmek için bir açılır liste, bir panel bir etiket koşulu oluşturmak için öğeler, bir veritabanı dosyasını tanımlamak için bir alan, çıktı dosyasının konumunu tanımlamak için bir alan, bir etiket eklemek ve silmek için düğmeler, işlemeyi başlatmak için bir düğme. Şekil 3.3, şablon tasarımcısı penceresini göstermektedir.

Şekil 3.3 - Şablon oluşturucu penceresi

Yazılımın çalışması sonucunda XML dilinin çeşitli versiyonlarının XML dosyaları elde edilmiştir. Girdi verileri olarak dBase II, dBase III ve dBase IV sürümlerinin dbf formatındaki veritabanları kullanılmıştır. Dönüştürülen dosyalar şu tarayıcılarda doğru şekilde açıldı: Internet Explorer 10, Mozilla Firefox 19, Google Chrome sürüm 27.0.1453.93, Opera 12.15. Tarayıcılara ek olarak, dosyalar herhangi bir metin düzenleyiciyle görüntülenebilir ve düzenlenebilir. Elde edilen sonuçlara göre, programın çalışması sırasında elde edilen XML dosyalarının müşteri gereksinimlerini karşıladığı sonucuna varılabilir.

3. 3 Yazılım ürünü güvenilirliğinin test edilmesi ve değerlendirilmesi

Yazılım ürünü test edilirken aşağıdaki hatalar tespit edildi:

Veritabanı tablo hücresine indeksleme hatası;

Döngü değişkeni çıkış hatası;

Bir satırın veya sütunun dizini sayılarını aştığında oluşan bir hata.

1. Veritabanı tablo hücresine indeksleme hatası. Şablon, x ve y'nin sayı veya değişken olduğu "*satır[x].sütun[y]*" biçiminde bir kod içerdiğinde gerçekleşir. Şablonda benzer diziler işlenirken program koduna ek bir koşul eklenerek sorun çözüldü.

2. Döngü değişkeni çıkış hatası. Şablonda x'in bir değişken olduğu "*x*" biçiminde bir kod belirtildiğinde gerçekleşir. Tanımlayıcı tablosunun derlemesi değiştirilerek sorun çözüldü.

3. Bir satırın veya sütunun indeksi onların sayısını aşarsa oluşan bir hata. Şablon, x'in değeri sütun sayısını aşan bir sayı veya değişken olduğu "*sütun[x].ad*" gibi bir kod içerdiğinde gerçekleşir. İndeks değeri ile satır veya sütun sayısı karşılaştırılarak sorun çözüldü, indeks aşılırsa hata günlüğüne bununla ilgili bir giriş eklenir ve program çalışmaya devam eder.

3. 4 Maliyet hesabı

Sürekli olarak farklı veritabanı biçimleriyle çalışan işletmelerin, bir veritabanı biçiminden diğerine dönüştürme sürecini otomatikleştirmesi gerekir. Bu, işçilerin üretkenliğini artıracağı gibi, eğitim gereksinimlerini de azaltacaktır.

Yazılım ürünü, yazılım parçasına ek olarak, geliştiricilerin entelektüel faaliyetlerinin sonucu olan eşlik eden belgelerden de oluşur.

Kontrol otomasyonu ile ilgili sermaye yatırımlarının yapısında, bir otomasyon projesinin (üretim öncesi maliyetler) geliştirilmesi için sermaye yatırımları ve projenin uygulanması için sermaye yatırımları (uygulama maliyetleri) tahsis edilir:

nerede K p - tasarım için sermaye yatırımları; К р - proje uygulaması için sermaye yatırımları.

Tasarım için sermaye yatırımlarının hesaplanması. Yazılım tasarımı için sermaye yatırımları, maliyet tahminleri yapılarak belirlenir ve aşağıdaki formüle göre belirlenir:

nerede K m - malzeme maliyeti; K pr - projenin geliştirilmesinde doğrudan yer alan mühendislik ve teknik personel için sosyal sigorta kesintileri ile temel ve ek ücretler; K mash - programda hata ayıklamak için makine süresinin kullanımıyla ilgili maliyetler; K c - tasarım üçüncü şahısların katılımıyla gerçekleştirilirse, üçüncü şahıslara verilen hizmetler için ödeme; K n - tasarım departmanının genel giderleri. Tüm hesaplamalar, yazılım geliştirme sırasında Pridnestrovian Cumhuriyet Bankası'ndaki bir ABD dolarının maliyetine karşılık gelen geleneksel birimlerde (c.u.) yapılacaktır.

Malzeme maliyetleri. Maliyet tahminini belirleyelim ve yazılımın geliştirilmesine giden K m malzemelerinin maliyetini hesaplayalım. Malzeme listesi tez konusuna göre belirlenir. Bunlar şunları içerir: bilgi taşıyıcıları (kağıt, manyetik diskler) ve giyilebilir çalışma nesneleri (kalem, kurşun kalem, lastik bant). Malzemeler için maliyet tahmini tablo 3.1'de sunulmuştur.

Tablo 3.1 - Malzemelerin tahmini maliyeti

Benzer Belgeler

    Aktarılan dbf dosyalarına dayalı olarak (kullanıcı tarafından belirlenen bir şablona göre) bir XML biçim dosyası oluşturmak için bir dönüştürücü programının uygulanması. Kod kullanarak ve yapıcıyı kullanarak şablonlar oluşturun. Yazılım ürün mimarisi tasarımı.

    tez, 06/27/2013 eklendi

    Aktarılan dbf dosyalarının içeriğine dayalı olarak, kullanıcı tanımlı bir şablona göre bir XML dosyası oluşturan bir dönüştürme programının geliştirilmesi. Şablonları iki şekilde oluşturmayı düşünün: kod kullanarak ve bir oluşturucu kullanarak.

    dönem ödevi, 06/24/2013 eklendi

    Dosyaları şifreleyen ve şifrelerini çözen bir programın kullanıcı arayüzünü tasarlama. Veri sunum biçimi seçimi. Prosedürlerin listesi, makrolar ve amaçları. Programda kullanılan fonksiyonların tanımı, test edilmesi ve hata ayıklaması.

    dönem ödevi, 05/17/2013 eklendi

    Diskteki yinelenen dosyaların "arama motorunun" özellikleri. Programlama ortamı seçimi. Bir yazılım ürününün geliştirilmesi. Bir diskte yinelenen dosyaları arayan bir program için temel gereksinimler. Gizli dosyaları göster.

    dönem ödevi, 28.03.2015 tarihinde eklendi

    Arşivleyicinin çalışmasının özellikleri - daha kolay aktarım, kompakt depolama için verileri tek bir arşiv dosyasına sıkıştıran bir bilgisayar programı. Arşivleme işleminin özellikleri - dosya yazma ve sıkıştırmayı açma - dosyaları açma.

    özet, 26.03.2010 tarihinde eklendi

    PartList uygulamasından belirtimleri dışa aktarmak için bir yazılım ürününün geliştirilmesi. Bir dosyaya bilgi aktarma yönteminin seçimi, sunum formatı. Dönüştürücü geliştirme, kullanıcı arabirimi uygulaması. Geliştirmenin alaka düzeyi için gerekçe.

    tez, 25.09.2014 eklendi

    Yazılım Tasarımı. Doğrudan seçim yöntemini kullanarak dosya dizininin ilk oluşumunun şeması, dosya dizininin görüntülenmesi, dosyaların silinmesi, dosyaların ada göre sıralanması, oluşturulma tarihi ve boyutu. Dosya sisteminde dizin yönetimi.

    dönem ödevi, 01/08/2014 eklendi

    Wav ve mp3 dosya biçimlerinin özellikleri. Kullanım durumu diyagramları oluşturma, grafik arayüz ve uygulama mimarisi geliştirme. Program işlem algoritmalarının geliştirilmesi: TrimWavFile yöntemi, TrimMp3, ChangeVolume, speedUpX1_2, speedDownX1_2.

    dönem ödevi, 20/12/2013 eklendi

    Total Commander programıyla çalışmanın özelliklerine genel bakış. Klasörler oluşturun, dosyaları bir flash sürücüye kopyalayın. Bağlam menüsünün çağrılması. Dosya yapısının tanımı. Bir dosya grubunu yeniden adlandırma. Dosyaları bir arşive koymak. Bir arşivi birkaç parçaya bölmek.

    laboratuvar çalışması, 04/08/2014 eklendi

    Dosyaların yıldız şeklinde, halka ve isteğe bağlı bir topolojiye sahip bir bilgisayar ağına en uygun şekilde yerleştirilmesi için bir modelin oluşturulması ve doğrulanması. Dosyaları aktarmak için gereken veri miktarı. Dosyaların bilgisayar ağ düğümleri üzerinden optimum dağılımı.

DBF, daha önce Microsoft Office ortamına entegre edilmiş olan çalışma yeteneği olan bir veritabanı dosyasıdır. Access ve Excel uygulamaları formatla çalıştı, daha sonra Access paketten çıkarıldı ve ayrı bir program haline geldi ve 2007'den beri Excel'de DataBaseFile desteği önemli ölçüde sınırlandırıldı.

Bir DBF dosyasını doğrudan Excel'de açamıyorsanız, önce onu dönüştürmeniz gerekir.

Bununla birlikte, DBF birçok kişi tarafından eskimiş bir biçim olarak görülse de, işletme, tasarım ve mühendislik alanlarında uzmanlaşmış programlarda hala yaygın olarak kullanılmaktadır. Büyük miktarda bilgi, bunların yapılandırılması ve işlenmesi, sorgu yürütme ile çalışmanız gereken her yerde. Örneğin, 1C Enterprise yazılım paketi tamamen veritabanı yönetimine dayalıdır. Ve birçok ofis dokümantasyonu ve verisinin Excel'e gittiği göz önüne alındığında, bu formatlarla entegre çalışma konusu alakalı ve talep görüyor.

DBF ile çalışırken Excel sorunları

Excel 2003'te, DBF'yi açıp düzenlemek ve XLS belgelerini şu biçimde kaydetmek mümkündü:

  1. Menü çubuğundan "Dosya"yı seçin.
  2. Ardından, "Farklı Kaydet" i tıklayın.
  3. Açılır listeden "*.dbf" öğesini seçin.

ÖNEMLİ. 2007'den beri, veritabanı biçimini Excel'de açıp görüntüleyebilirsiniz, ancak içinde değişiklik yapamaz veya .xls belgelerini kaydedemezsiniz. Standart program araçları artık bu olasılığı sağlamamaktadır.

Ancak, uygulamaya böyle bir işlev ekleyen özel eklentiler vardır. Çeşitli forumlardaki ağda, programcılar geliştirmelerini yayınlar, farklı seçenekler bulabilirsiniz. XslToDBF adlı en popüler eklenti, geliştiricinin http://basile-m.narod.ru/xlstodbf/download.html sitesinden indirilebilir. İndirme ücretsizdir, ancak dilerseniz cüzdanınıza veya kartınıza herhangi bir meblağ aktararak projeye destek olabilirsiniz.

Kurulum ve kullanım:

  1. Yukarıdaki siteden arşivi indirin.
  2. XlsToDBF.xla dosyasını buradan ayıklayın ve bilgisayarınıza kaydedin.
  3. Excel'de, soldaki Microsoft simgesi düğmesiyle menüye gidin, Seçenekler.
  4. Excel Seçenekleri altında Eklentiler'i seçin.
  5. "Yönet / Excel Eklentileri" satırında "Git" düğmesini tıklayın.
  6. Gözat'a tıklayın ve kaydedilen XlsToDBF.xla dosyasının üzerine gelin.
  7. Eklentiler listesinde, işaretli bir onay kutusuyla "XLS -> DBF" girişi görünmelidir. Mevcut değilse not edin.
  8. Artık .xls dosyasını .dbf biçiminde kaydedebilirsiniz. Aynı siteden ayrıntılı kullanım talimatlarını indirebilirsiniz. Ana şey, tablo verilerini uygun şekilde hazırlamaktır.
  9. Tablo hazır olduktan sonra, herhangi bir dolu hücreyi seçin ve Alt ve F tuşlarına basın
  10. Açılan makro penceresinde alana XlsToDBF yazın, büyük/küçük harf önemli değil.
  11. Çalıştıra tıkla.
  12. Verileri doğru bir şekilde hazırlayıp biçimlendirdiyseniz, veritabanı dosyası orijinal XLS'nin bulunduğu klasöre kaydedilecektir.

Office'te hiçbir şeyi değiştirmek istemiyorsanız, eklentilere ve üçüncü taraf uygulamalarına güvenmiyorsanız, XLS dosyasını DBF'ye dönüştürmek için daha fazla zaman alan bir yol sunabilirsiniz:

  1. Microsoft Access'i satın alın ve yükleyin.
  2. Excel'de belgeyi hazırlayın ve kaydedin.
  3. MS Access'te "Aç" düğmesine tıklayın ve dosyayı seçin.
  4. Şimdi içe aktarmayı doğru şekilde yapılandırmanız gerekiyor.
  5. Başlamak için bir sayfa seçin. Birkaç tane varsa, yine de birer birer yapmanız gerekir.
  6. Tabloda bir başlık satırı varsa ilgili kutuyu işaretleyin.
  7. Ardından, tablonun adını değiştirebilirsiniz.
  8. Şimdi "Dış Veri" üzerine tıklayın.
  9. "Dışa Aktar", "Gelişmiş" düğmesini tıklayın.
  10. dBase Dosyasını seçin.
  11. Bir ad belirtin ve konumu kaydedin.

Bu yöntem her zaman başarılı bir şekilde çalışmaz, genellikle veri işleme ve ardından kaydetme sırasında hatalar oluşur. Ve çok uzun ve rahatsız edici.

Dönüştürmek

Ofis programlarıyla uğraşmamak için, verileri bir formattan diğerine aktarmanıza izin veren birçok uygulama oluşturulmuştur. İlk olarak, neredeyse tüm güçlü DBMS programları, XLS'ye dışa aktarma ve XLS'den yükleme yeteneği sunar. İkincisi, dönüştürme konusunda uzmanlaşmış küçük yardımcı programlar var. Bunlardan bazıları:


Tüm bu programlarda, dönüştürme, kaynak dosyayı açmanız ve ardından "Dönüştür" veya "Dışa Aktar" komutunu yürütmeniz gerektiği gerçeğine gelir.

Ücretsiz çevrimiçi dönüştürme hizmetleri de vardır. Bu tür sitelerde, kaynak dosyayı göndermeniz (yüklemeniz), "Dönüştür" düğmesini tıklamanız önerilir, ardından dönüştürülen belgeye bir bağlantı görünecektir. Bu tür hizmetlere ne kadar güvenebileceğiniz, karar bireyseldir, tehlike ve risk size aittir.

Böylece, DBF'yi Excel'de açabilirsiniz, ancak sürümü 2007 ve daha yeniyse, onunla daha fazla bir şey yapılamaz, sadece bakın. Düzenlemek, XLS'ye kaydetmek için, ters yönde dönüştürmenin yanı sıra özel eklentiler veya programlar vardır. Farklı uygulamalarda dönüştürme ve DBF ile çalışma deneyiminiz varsa, lütfen ipuçlarınızı yorumlarda paylaşın.

Günümüzde XML, farklı çözümler arasında hızlı ve verimli veri alışverişi için endüstri standardıdır. Ancak, kullanıcıların XML verilerini farklı bir biçimde temsil etmesi gereken birçok görev vardır. Bu durumlarda çevirici programlara ihtiyaç duyulur. XML ve popüler tablo biçimleri arasındaki boşluğu doldururlar. XML verilerini düzenli olarak dönüştürmeniz gerekiyorsa, kesinlikle Gelişmiş XML Dönüştürücü kullanmanız gerekir! Advanced XML Converter ile artık karmaşık XML dönüşümleri ve XSL stil sayfaları yazmanıza gerek yok. XML'i anında HTML, CSV, DBF, XLS, SQL'e dönüştürün! Gelişmiş XML Dönüştürücü, HTML, CSV, DBF, XLS ve SQL gibi diğer biçimlere dönüştürmenize yardımcı olacaktır. XML dosyası yüklenir yüklenmez ve "Dönüştür" düğmesine bastığınız anda, program tablo biçimlerinden birine hızlı ve yüksek kaliteli çıktı üretecektir. Doğru çıktıyı sağlamak için Advanced XML Converter, orijinal XML dosyasının hiyerarşik yapısını kullanır. Çıktı dosyasında sunulacak verileri seçebilirsiniz. Toplu çalıştırmayı kullanarak birden fazla dosyayı da dönüştürebilirsiniz. Advanced XML Converter ile artık karmaşık dönüştürme veya XSL dönüştürme betikleri yazmanıza gerek yok. XML'i HTML, CSV, DBF, XLS, SQL'e dönüştürmek hızlı ve sezgiseldir!

Gelişmiş XML Dönüştürücüyü İndirin

Advanced XML Converter ile tüm XML verilerini veya yalnızca belirli etiketlerdeki verileri ayıklayabilirsiniz. Ayıklanan verileri görüntülerken, farklı görünümler arasında hızla geçiş yapabilirsiniz (yeni analiz olmadan ve verileri yeniden yüklemeden). Her çıktı biçimi için dışa aktarma seçeneklerini ayarlayabilirsiniz (dışa aktarılan alanlar için HTML tablo stilleri ve CSV sınırlayıcıları ve diğer seçenekler gibi). Gelişmiş XML Dönüştürücü, tüm tabloları tek bir dosyaya veya birkaç dosyaya ayrı ayrı kaydetmenize ve ayrıca önizleme ve çıktı seçeneklerini esnek bir şekilde yapılandırmanıza olanak tanır.

Yazılım, çoğu sistemde bulunan Internet Explorer ayrıştırıcısı üzerine kurulduğu için sürücülerin veya ek bileşenlerin yüklenmesini gerektirmez. Advanced XML Converter, .NET Framework veya XML Şemaları gerektirmez. Program, XML dosya yapısı hakkında derin bilgi gerektirmez ve büyük miktarda XML verisinin dönüştürülmesini büyük ölçüde kolaylaştırır. Bir kullanıcı olarak, en karmaşık XML belgelerini, okunması kolay farklı görünüm tablolarında görebileceksiniz. Bu, düz metne yakın bir biçim gerektiren veritabanlarına veya özel sistemlere bilgi aktarmak için çok uygundur.

XML verilerini dönüştürmek için hızlı bir sistem arıyorsanız, Gelişmiş XML Dönüştürücü en iyi seçimdir! Uygun fiyatlı ve kullanımı kolay program, karmaşık veri dönüşümlerini dakikalar içinde gerçekleştirir!

Advanced XML Converter'ın en son sürümü, XML dosyalarından veri ayıklamak ve popüler HTML, DBF, CSV, Excel ve SQL formatlarında kaydetmek için basit, hızlı ve oldukça verimli bir yol sağlar.

Gelişmiş XML Dönüştürücü ile şunları yapabilirsiniz:


  • tüm XML verilerini veya verileri yalnızca belirli etiketlerden çıkarın,
  • farklı veri sunumu seçenekleri arasında geçiş yapın (verilerin yeniden ayrıştırılması gerekli değildir),
  • her çıktı formatı için özel dönüştürücü seçeneklerini yapılandırın (HTML stil sayfaları veya CSV sınırlayıcıları ve diğer seçenekler gibi),
  • XML'den çıkarılan tüm tabloları bir dosyaya veya birkaç çıktı dosyasına kaydedin.

Çelyabinsk bölgesi sakinlerinin dikkatine!

Chelyabinsk Bölgesi TFOMS'si, kimlik belgenizin ayrıntılarını değiştirirseniz ve ayrıca yeni bir pasaport aldığınızda, sağlık sigortası kuruluşunuzla (iletişim bilgileri CHI politikasında belirtilmiştir) bir süre içinde iletişime geçmeniz gerektiğini hatırlatır. Bu değişikliklerin meydana geldiği günden itibaren ay.


DİKKAT!!! Dönüştürülen dosyanın raporlama dönemi Ocak 2019'dan (dahil) ise, onu XDConverter7 programında dönüştürmeniz gerekir. Dönüştürülen dosyanın raporlama dönemi Kasım - Aralık 2018 (dahil) arasındaysa, onu XDConverter6 programında dönüştürmeniz gerekir. Dönüştürülen dosyanın raporlama dönemi Temmuz - Ekim 2018 (dahil) arasındaysa, onu XDConverter5 programında dönüştürmeniz gerekir. Dönüştürülen dosyanın raporlama dönemi Haziran 2017 ile Haziran 2018 (dahil) arasındaysa, dosyayı XDConverter4 programında dönüştürmeniz gerekir. Dönüştürülen dosyanın raporlama dönemi Ocak 2015 ile Mayıs 2017 (dahil) arasındaysa, dosyayı XDConverter3 programında dönüştürmeniz gerekir. Dönüştürülen dosyanın raporlama dönemi Nisan 2014 ile Aralık 2014 (dahil) arasındaysa, dönüştürme için XDConverter2 programını kullanmanız gerekir. Dönüştürülen dosyanın raporlama dönemi Mart 2014'e (dahil) kadarsa, onu XDConverter programında dönüştürmeniz gerekir. XDConvert, usl_pack_*.rar adlı bir dizin paketi kullanır. XDConvert2, usl_pack2_*.rar adlı bir referans paketi kullanır. XDConvert3, usl_pack3_*.zip adlı bir referans paketi kullanır. XDConvert4, usl_pack4_*.zip adlı bir referans paketi kullanır. XDConvert5, usl_pack5_*.zip adlı bir referans paketi kullanır. XDConvert6, usl_pack6_*.zip adlı bir başvuru paketi kullanır.

Dönüştürücünün çalışması için bir dizin paketi, "Teknik destek - Referanslar - XDConverter programı için USL_PACK referans paketi" bölümündeki siteden indirilebilir.

XDConverter programında, "Dizinleri yükle" menüsüne gitmeniz, ardından indirilen dosyayı usl_pack_yymmdd.rar (yymmdd - yıl\ay\gün) biçiminde seçmeniz ve "Aç" düğmesini tıklamanız gerekir. Kılavuzlar yüklenecektir.

Manuel olarak XML->DBF dönüştürme

  1. Araçlar-Ayarlar menüsüne gidin, veri dosyasına giden doğru yolu kontrol edin ve Tamam'a tıklayın.
  2. Menüden Dönüştür - XML'i Native'e seçin.
  3. Açılan pencerede, Giriş dosyası bölümünde veri dosyasının (zip arşivi) yolunu belirtin.
  4. Çıktı Dosyası bölümünde, Adı kontrol edin ve gerekirse yolu belirtin.
  5. İşlem düğmesine basın. Aşağıdaki günlük penceresi, dönüştürmenin ilerlemesini gösterir.

DBF'den XML'e elle dönüştürme

Manuel dönüştürme modu için "Dönüştür - Yerelden XML'e" menüsüne gidin. Ardından, istenen Yerel dosyayı seçin ve "Aç" düğmesini tıklayın. Kaynak/hedef seçim penceresi görünür. Dosyanın nereden ve nereden gönderildiğini belirtmek gerekir. Sağlık tesislerinden MHIF veya HIO'lara (veya program HMO'da yüklüyse HMO'lardan sağlık tesislerine). Ardından, "Tamam" düğmesini tıklayın. Dönüşüm başlayacak ve sonunda sonuç hakkında bir rapor verilecektir.

Komut satırından başlatma seçenekleri

"XDConverter.exe 1 2 3 4", burada

1 - Dönüştürülen dosya adı (yol ile)

2 - Oluşturulan dosya için dizin

3 - Kaynak (M,T,S)

4 - Alıcı (M,T,S)

3, 4 - yalnızca DBF->XML\ dönüştürmesi için

Dönüştürücü başlatıcı (tek kurulum ve çalıştırma için)

1. StartConvert'i yükleyin ve çalıştırın.
2. Menüde, dosya başına raporlama dönemini seçin. muhasebe.
3. Program gerekli dönüştürücüyü (XDConverter, XDConverter2, XDConverter3) otomatik olarak başlatacaktır.
4. Ardından, her zamanki gibi dönüştürün.

XD Dönüştürücü7

XD Dönüştürücü6

XD Dönüştürücü5

XD Dönüştürücü4

Muhtemelen sık sık dönüştürmeniz gerekir xml ile bir dosya veya klasör xml dosyaları bir veya daha fazla dosyaya DBF Dosyalar. Problem şu xml yapısı, hiyerarşisi ve iç içe geçme düzeyleri dosyadan dosyaya farklılık gösterir. Bu yazıda, bir dosyanın nasıl içe aktarılacağına ayrıntılı olarak bakacağız. xml HERHANGİ bir yapının dosyasını bir daireye DBF masa.

adlı yeni bir özellik Özel XML'i İçe Aktar yılında uygulandı DBF Komutanı Profesyonel sürüm 2.7 (derleme 40). Bu komut, komut satırı arayüzü aracılığıyla kullanılabilir. Sözdizimi aşağıdaki gibidir:

dbfcommander.exe -icx [<-attr>]

Gördüğünüz gibi dört parametre var:

  • -icx- araç Özel XML'i İçe Aktar.
  • – dosyanın tam adı (yol dahil) veya dosyayı içeren klasörün adı xml içe aktarılacak dosyalar. Ayrıca bir maske kullanarak yalnızca belirli dosyaları yükleyebilirsiniz, örn. " D:\xml\bir_prefix_*.xml". Bu durumda, yalnızca uzantısı olan dosyalar xml ve kimin adı" ile başlayan bazı_önek"e dönüştürülecek DBF. Klasördeki tüm dosyaları dönüştürmek istiyorsanız, aşağıdaki maskeyi kullanın: " D:\xml\*.xml".
  • – hedef klasör, örn. " D:\dbf\". Bu durumda, mevcut tüm DBF dosyalar yazılacaktır. Kaynağı içe aktarmak istiyorsanız xml dosyalar bir arada DBF dosya, tam dosya adını kullanın, örn. " D:\dbf\sonuç.dbf". Ancak bu durumda, ortaya çıkan dosya dönüştürme işlemi başlamadan önce oluşturulmalıdır, aksi takdirde bir hata oluşur. DBF dosya kullanıldı için elde edilen veriler, yeniden yazılmayacak ve her yeni kayıt sisteme eklenecektir. Aynı dosya.
  • – sözde tam adı " harita dosyası", ki bu basit DBF kaynağın tanımını ve sonuçtaki dosya alanlarını içeren dosya. Aşağıda bir harita dosyası oluşturma sürecini ele alacağız.
  • <-attr> - belirli niteliklere sahip etiketleri içe aktarmak istiyorsanız bu parametreyi kullanın.

DBF alanları tanımı veya Bir harita dosyası nasıl oluşturulur

Bir örnek kullanarak bir şeyler öğrenmek her zaman daha iyidir. Bizim durumumuzda, bazı iyi bilinenlere ihtiyacımız var. xml. hadi bir tane alalım RSS haber akışı XML'i dosya (mevcut):

Gördüğünüz gibi dört tane var.<öğe> iç içe geçmiş öğeler<kanal> kendisi üst düzeyde iç içe olan öğe<rss> eleman. Aynı iç içe geçme seviyesindeki öğeler de vardır.<öğe> elemanlar:<jeneratör>, <başlık>, <Tanım> vb.

Diyelim ki her<öğe> eleman, sonuçta bir satır olarak temsil edilmelidir. DBF dosya. Yani dosyamız dört kayıt içerecektir.

Bir harita dosyası oluşturmak için önce sonucu oluşturalım DBF dosya. Buna ihtiyacımız var çünkü o zaman birkaç tıklamayla bir harita dosyası oluşturabileceğiz. DBF Komutanı Profesyonel, tıklamak Dosya -> Yeni ve bir DBF dosya. durumunda RSS XML'i dosya yapısı aşağıdaki gibidir:

Tıklamak TAMAM. bu DBF dosyası oluşturulacak ve şimdi içe aktarma işlemimiz için sonuç dosyası olarak kullanılabilir. dan xml işlem. Mevcut tüm alan türlerini kullanabilirsiniz: karakter, tamsayı, sayısal, Tarih, vesaire.

Ortaya çıkan dosyaya dayalı bir harita dosyası oluşturmak için, İhracat Yapısı araç düğmesi (yukarıdaki resme bakın). Kaydet iletişim kutusu açıldığında, yolu ve dosya adını seçin ve ardından yapıyı bir dosya olarak kaydedin. DBF dosya.

XML etiketlerini DBF alanlarıyla eşleştirme

Henüz bir şey daha yapmalıyız: xml sonuçtaki alanlara eklenmesi gereken etiketler DBF dosya.

DBF az önce kaydettiğiniz dosya. Tıklayın Dosya -> Yapı ve" adında yeni bir alan ekleyin. xmltagname"nın karakter tip. İsterseniz harita dosyasına daha fazla alan ekleyebilirsiniz. Örneğin, "adlı bir alan ekleyelim" Yorum".Tıklamak TAMAM Değişiklikleri kaydetmek için.

Şimdi yeninin her satırını doldurun" xmltagname"ile alan xml düğüm yolu (" ile ayrılmış) -> ") ilgili alana girilmelidir. DBF dosya:

Demek ki değeri xml düğüm<başlık> iç içe geçmiş<kanal> üst seviyede iç içe geçmiş düğüm<rss>, " içine eklenecektir başlık"alan; xml etiket" rss -> kanal -> açıklama"içine eklenecek" iniş"alan vb.

kullanılması durumunda" -attr" parametresi, harita dosyasının yolları da karşılık gelen öznitelikleri içermelidir, örneğin: " rss version="2.0" -> kanal -> başlık".

dikkat et" item_desc"alan. xml etiket" rss -> kanal -> öğe -> açıklama" içerir CDATA bölümü ile HTML işaretleme Bu nedenle, etiket yolu " ile bitirilmelidir. #cdata-bölümü"sicim.

Yukarıdaki resimde görebileceğiniz son sıra sözde " satır etiketi". Bu etiket yolu, DBF Komutanı hangisini bilmek xml etiketi sonuçta yeni bir satır olarak kullanılmalıdır. DBF dosya. Bizim durumumuzda, bu" rss -> kanal -> öğe".

" değerinin olduğuna dikkat edin. isim Satır-etiket içeren kayıt için " alanı boş bırakılmalıdır, böylece program satır-etiketini tanıyabilir.

Hepsi bu kadar. Artık içe aktarmayı şuradan çalıştırabiliriz: xml ile DBF kendisi. Aşağıdaki komutu komut satırından veya bir yarasa dosya:

dbfcommander.exe -icx "D:\xml\rss.xml" "D:\dbf\" "D:\map-file.dbf"

Sonuç olarak, "yeni dosyayı alacağız" D:\dbf\rss.dbf"içe aktarılanları içeren xml veri:

Bu dönüştürmede kullanılan tüm dosyaları adresinden indirebilirsiniz.



Makaleyi beğendiniz mi? Arkadaşlarınla ​​paylaş!