petit problème pour lire une doc

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

petit problème pour lire une doc

Message par gansta93 »

Salut tout le monde,

Vous allez me dire que mon message est décalé mais j'ai vraiment besoin d'aide.
Au départ, je voulais traduire un logiciel mais ça a été impossible.
Alors le développeur m'a fait télécharger une dll qui avait les fonctions, et ct à moi de refaire une interface. Il y a une doc avec cette DLL, mais elle a deux problèmes:
1. Elle est en anglais.
2. La documentation est pour du C/C++, ce qui rand impossible pour moi la compréhension.
Pour le zip contenant la dll ainsi que la doc et d sources en C, téléchargez tout ça à l'adresse suivante:
http://gansta93.free.fr/Sald28.zip
S'il vous plaît, aidez-moi!
Depui le temps que je veux traduire ce logiciel.

Merci d'avance.
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message par fweil »

wanna code some pb gangsta ?!

Bon je t'ai fait le début .. cela ne fonctionne pas encore, mais je te propose quand même d'en faire un peu, ou d'essayer.

Si tu bloques, fais signe ...

Regardes bien le fichier SATEST.cpp et les autres.

Code : Tout sélectionner

Global *SalisValidDate
Global *SalAdToIslamic
Global *SalIslamicToAd
Global *SalQiblaInfo
Global *SalCalculate
Global *SalMoonInfo

Structure WORLDLOCATION
  lat.l ; loc.lat=26+14/60.0+10/3600.0; // Latitude = 26 degrees, 14 minutes and 50 seconds North
  lon.l ; loc.lon=50+34/60.0+59/3600.0; // Longitude = 50 degrees, 34 minutes and 50 seconds East 
  zone.f ; loc.zone=(float)3.0;			// timezone is GMT + 3 hours
  saveStr.l ;  loc.saveStr=0;				// DST is not applicable
  saveEnd.l ;  loc.saveEnd=0;				// DST is not applicable
  height.l ;  loc.height=0;					// The height of location is zero
EndStructure

Structure ProgramData
  imsakAngle.f ; =(float)-16.0; // 16 degrees and 0 minutes
  fajrAngle.f ; =(float)-13.5;  // 13 degrees and 30 minutes
  ishaAngle.f ; =(float)-16.0;  // 16 degrees and 0 minutes
  dist.l ; =10 // distance = 10 kilometers
  fiqh.l ; =0 // Fiqh = Jafari
  precision.l ; =1 // precision = minutes
  addMin.l ; =0 // Zero minutes to be added to Maghrib time
  secondsToCorrect.l ; =2 // It is recommended to keep this value
  maxErrorInSec.l ; =1 // It is recommended to keep this value
  rule.l ; =1 // Rule = 1/7 of day when needed
  temp.l ; =10 // Change the value of temperature only if needed
  pressure.l ; =0 // The prgram will estimate correct value for pressure
  visibleLimit.f ; =(float)15 // visible limit = 15 degrees and 0 minutes
  adjust.l ; =0 // Do not adjust Islamic date in relation to Julian/Gregorian
  nMinutes.l ; =90 // It is recommended to keep this value
  programFlags.l ; =0X100 // 0X000 for day, 0X100 for month and 0X200 for year calculation
EndStructure

Procedure SalisValidDate(Date.l, type.l)
; Use this function To test If a Date (Islamic Or Julian/Gregorian is a valid date 'type' indicates the type of date. 0 = Julian/Gregorian And 1 = Islamic
  SysDate.SYSTEMTIME
  SysDate\wYear = Year(Date)
  SysDate\wMonth = Month(Date)
  SysDate\wDay = Day(Date)
  SysDate\wHour = Month(Hour)
  SysDate\wMinute = Month(Minute)
  SysDate\wSecond = Month(Second)
  CallFunctionFast(*SalisValidDate, @SysDate, Type)
EndProcedure

;
; The 2 functions below convert between Islamic And Julian/Gregorian calendars.
;  The result is stored in the date Structure
;
Procedure SalAdToIslamic(Date.l, Latitude.l, Longitude.l, Zone.f)
  SysDate.SYSTEMTIME
  SysDate\wYear = Year(Date)
  SysDate\wMonth = Month(Date)
  SysDate\wDay = Day(Date)
  SysDate\wHour = Month(Hour)
  SysDate\wMinute = Month(Minute)
  SysDate\wSecond = Month(Second)
  Location.WORLDLOCATION
  Location\lat = Latitude
  Location\lon = Longitude
  Location\zone = Zone
  Location\height = 0
  CallFunctionFast(*SalAdToIslamic, @SysDate, @Location, @ConfigData)
EndProcedure

Procedure SalIslamicToAd(Date.l, Latitude.l, Longitude.l, Zone.f)
EndProcedure

Procedure SalQiblaInfo(Latitude, Longitude, Zone, dir, dist)
  Location.WORLDLOCATION
  Location\lat = Latitude
  Location\lon = Longitude
  Location\zone = Zone
  Location\height = 0
  CallFunctionFast(*SalQiblaInfo, dir, dist)
; Output arguments are 'dir' And 'dist'. 'dist' is in kilometers And 'dir' is in degree
EndProcedure

;
; The 2 functions below calculate prayer times And moon Data And Return the result in a character string.
; Make sure the string is long enough.
; You can format the output string in the way you prefer.
;
Procedure SalCalculate(Date.l, Latitude, Longitude, Zone, char.s)
  SysDate.SYSTEMTIME
  SysDate\wYear = Year(Date)
  SysDate\wMonth = Month(Date)
  SysDate\wDay = Day(Date)
  SysDate\wHour = Month(Hour)
  SysDate\wMinute = Month(Minute)
  SysDate\wSecond = Month(Second)
  Location.WORLDLOCATION
  Location\lat = Latitude
  Location\lon = Longitude
  Location\zone = Zone
  Location\height = 0
  CallFunctionFast(*SalCalculate, @SysDate, @Location, @ConfigData, char)
EndProcedure

Procedure SalMoonInfo(Date.l, Latitude, Longitude, Zone, char.s)
  SysDate.SYSTEMTIME
  SysDate\wYear = Year(Date)
  SysDate\wMonth = Month(Date)
  SysDate\wDay = Day(Date)
  SysDate\wHour = Month(Hour)
  SysDate\wMinute = Month(Minute)
  SysDate\wSecond = Month(Second)
  Location.WORLDLOCATION
  Location\lat = Latitude
  Location\lon = Longitude
  Location\zone = Zone
  Location\height = 0
  CallFunctionFast(*SalMoonInfo, @SysDate, @Location, @ConfigData, char)
EndProcedure

;
;
;
  Global ConfigData.ProgramData
  ConfigData\imsakAngle = -16.0; // 16 degrees and 0 minutes
  ConfigData\fajrAngle = -13.5;  // 13 degrees and 30 minutes
  ConfigData\ishaAngle = -16.0;  // 16 degrees and 0 minutes
  ConfigData\dist = 10;					// distance = 10 kilometers
  ConfigData\fiqh = 0;					// Fiqh = Jafari
  ConfigData\precision = 1;				// precision = minutes
  ConfigData\addMin = 0;				// Zero minutes to be added to Maghrib time
  ConfigData\secondsToCorrect = 2;		// It is recommended to keep this value
  ConfigData\maxErrorInSec = 1;			// It is recommended to keep this value
  ConfigData\rule = 1;					// Rule = 1/7 of day when needed
  ConfigData\temp = 10;					// Change the value of temperature only if needed
  ConfigData\pressure = 0;			    // The prgram will estimate correct value for pressure
  ConfigData\visibleLimit = 15;  // visible limit = 15 degrees and 0 minutes
  ConfigData\adjust = 0;				// Do not adjust Islamic date in relation to Julian/Gregorian
  ConfigData\nMinutes = 90;				// It is recommended to keep this value
  ConfigData\programFlags = $100;		// 0X000 for day, 0X100 for month and 0X200 for year calculation  

  If OpenLibrary(0, "C:\RECUP\PureBasic\Design\Gangsta93\Sald28\SALATD.DLL")
      Debug "Librarie trouvée"
      If ExamineLibraryFunctions(0)
          While NextLibraryFunction()
            Debug Str(LibraryFunctionAddress()) + " " + LibraryFunctionName()
            Select LibraryFunctionName()
              Case "SalisValidDate"
                *SalisValidDate = LibraryFunctionAddress()
              Case "SalAdToIslamic"
                *SalAdToIslamic = LibraryFunctionAddress()
              Case "SalIslamicToAd"
                *SalIslamicToAd = LibraryFunctionAddress()
              Case "SalQiblaInfo"
                *SalQiblaInfo= LibraryFunctionAddress()
              Case "SalCalculate"
                *SalCalculate = LibraryFunctionAddress()
              Case "SalMoonInfo"
                *SalMoonInfo = LibraryFunctionAddress()
            EndSelect
          Wend
      EndIf
      
      Debug SalisValidDate(Date(), 0)

      
      CloseLibrary(0)
    Else
      Debug "Librarie pas trouvée"
  EndIf
  
End
Bon courage, et surtout n'hésites pas à demander si tu as un pb.

Slts
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Salut,

Je vais bien reprendre ça... merci beaucoup. Je repasse si j'ai un pb.
Répondre