Search  
Thursday, May 24, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Aplicatii Web  unicode si XM...
 unicode si XML
 
 7/26/2007 10:23:53 AM
User is offlineCostel
227 posts
www.adrisoft.ro
4th




unicode si XML
 (Romania)
Am de trimis niste date locale din VFp intr-o aplicatie de la un prestator ce foloseste Scala iar formatul este XML. Toate bune si frumoase privind generarea fisierulu XML dar atunci cind vreau sa deschid cu un browser de internet se incapatineaza sa-mi dea eroare la linia:
<?xml version="1.0" encoding="UTF-16"?>

Cu ajutorul lui googu m-am mai luminat eu oleaca dar sint inca departe de o rezolvare   Solutia gasita se refera la deschiderea fisierului cu NotePad si salvarea lui cu  encoding="Unicode"

Imi puteti sugera o rezolvare din VFp pentru aceasta problema ?!!

Am mai gasit pe net o solutie dar din pacate fara rezultat si aceasta:

nFis=aDir(aFis,'*.xml')
if nFis<1
    ?? chr(7)
    wait ' Nu gasesc fisiere Xml ' wind time 10
    return
endif
for ii=1 to nFis
    cFis=aFis(ii,1)
    nSursa=fOpen(cFis)
    if nSursa<0
        wait ' Nu pot deschide fisierul  '+cFis wind time 15
        loop
    endif
    nDestin=fCreate('Fisier.txt')
    do while !fEof(nSursa)
        cSir=fGets(nSursa)
          cSyr=StrConv(cSir,1)    && Single byte -> Double Byte
          cSyr=StrConv(cSyr,5)    && Double Byte -> Unicode
          =fPuts(nDestin,cSyr)
      enddo
    =fClose(nSursa)
    =fClose(nDestin)
    delete file &cFis
    rename Fisier.txt to &cFis
endfor




Nu munci atit de mult incit sa nu-ti mai ramina timp ca sa cistigi bani. (proverb evreiesc)
 7/26/2007 3:23:14 PM
User is offlineCostel
227 posts
www.adrisoft.ro
4th




Re: unicode si XML
 (Romania)
Uff ! i-am dat de capat      tot cu  googu  "saracul"

fSO=CREATEOBJECT("scripting.FileSystemObject")
nFis=aDir(aFis,'*.xml')
if nFis<1
    ?? chr(7)
    wait ' Nu gasesc fisiere Xml ' wind time 10
    return
endif
for ii=1 to nFis
    cFis=aFis(ii,1)
    nSursa=fOpen(cFis)
    if nSursa<0
        wait ' Nu pot deschide fisierul  '+cFis wind time 15
        loop
    endif
    oFis = fSO.CreateTextFile("Fisier.txt",.T.,.T.)
    do while !fEof(nSursa)
        cSir=fGets(nSursa)
        oFis.WriteLine(cSir)
      enddo
    =fClose(nSursa)
    oFis.Close()
    delete file &cFis
    rename Fisier.txt to &cFis
endfor


Nu munci atit de mult incit sa nu-ti mai ramina timp ca sa cistigi bani. (proverb evreiesc)
 7/26/2007 8:14:11 PM
User is offlinealex_pascanu
80 posts


Re: unicode si XML
 (Romania)

 Costel wrote
Uff ! i-am dat de capat      tot cu  googu  "saracul"

fSO=CREATEOBJECT("scripting.FileSystemObject")
nFis=aDir(aFis,'*.xml')
if nFis<1
    ?? chr(7)
    wait ' Nu gasesc fisiere Xml ' wind time 10
    return
endif
for ii=1 to nFis
    cFis=aFis(ii,1)
    nSursa=fOpen(cFis)
    if nSursa<0
        wait ' Nu pot deschide fisierul  '+cFis wind time 15
        loop
    endif
    oFis = fSO.CreateTextFile("Fisier.txt",.T.,.T.)
    do while !fEof(nSursa)
        cSir=fGets(nSursa)
        oFis.WriteLine(cSir)
      enddo
    =fClose(nSursa)
    oFis.Close()
    delete file &cFis
    rename Fisier.txt to &cFis
endfor

Cred ca solutia e sa parcurgi fiesierul caracter cu caracater si sa cinvertesti fiecare caracter in unicode adik pe 16 biti.Nu stiu fox-ul ce functii are pentru asa ceva dar windows are api in mod cert ,te uiti in msdn gasesti functia api care face converie de la char la widechar si ar trebui sa mearga

 7/27/2007 2:46:57 PM
User is offlineedyshor
1450 posts
1st




Re: unicode si XML
 (N/A) Modified By edyshor  on 7/27/2007 2:47:52 PM)
fSO=CREATEOBJECT("scripting.FileSystemObject")" - se foloseste de functiile api ale windows-ului /:)

Oricum codul pare sa-isi face treaba foarte bine:

    object.CreateTextFile( filename [, overwrite[, unicode]] )
    This method is used to create a text file and returns a TextStreamObject that can then be used to write to and read from the file.

    The optional overwrite parameter returns a Boolean value - True (the default) permits overwriting of existing files while False does not. The other optional parameter, unicode, is also a Boolean.
    In this case, True creates a Unicode file and False (the default) creates an AscII file.


  Visual FoxPro  Aplicatii Web  unicode si XM...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement