Astrolabe
TRACÉ D'UN ASTROLABE AVEC RÈGLE ET COMPAS.
On voit beaucoup de logiciel sur le net concernant l'utilisation de l'astrolabe. Cependant cet instrument a été développé par les Arabes vers l'an 1000. Ils ne disposaient que d'instrument tels le compas et la règle. Vous trouverez ici une explication de la méthode employée.
Tracer les almucantarats.
Afin de tracer les almucantarats, il faut connaître l’élévation polaire du lieu soit Paris 48°;
Tracer la ligne crépusculaire.
1° Façon :
Tracer des maisons du ciel.
Divise l’équinoxial en 12 parties et tracez les arcs de cercles passant par les marques sur l’équinoxial et le point d’intersection entre (AC) et l’horizon oblique. (coul/rouge) ont le diamètre du tropique du capricorne. L’arc en Orient passant au dessus de l’horizon oblique est numéroté 1, celui situé sous le point D est noté 2 etc…

LibreOffice et Apache OpenOffice/Writer/Macros

Installation.
L'exécution des macros est bloquée par défaut, pour éviter la propagation de virus ou programmes indésirables.
Pour les activer, il faut aller dans le menu "Outils\Options\Sécurité\Sécurité des macros", et définir le niveau le plus faible.
Afin de pouvoir les exécuter plus rapidement qu'en passant par le menu "Outils\Macros\Exécuter la macro" (ou ALT + O, + M, + M, + U), il est possible d'assigner un raccourci clavier à certaines d'entre elles. Pour ce faire, se rendre dans "Outils\Personnaliser". Les modules sont ensuite sélectionnables en bas à gauche : pour les raccourcis clavier dans l'onglet "Clavier", et pour les boutons dans l'onglet "Barre d'outils\Ajouter...".
Il peut y avoir plusieurs macros par module.
Ouvrir un document.
Sub ouverture
 dim Chemin as String, URL as String
 Chemin = "C:\Users\Login\Desktop\DocumentTest.odt"
 URL = ConvertToUrl(Chemin)
 Document1 = StarDesktop.LoadComponentFromURL(URL,"_blank",0, array())
End sub
Cette fonction renvoie une erreur si le fichier n'existe pas. Il faut donc modifier son chemin pour qu'il soit créé dans ce cas :
Sub creation
 ' Crée et ouvre un fichier .odt
 URL2 = "private:factory/swriter"
 Document2 = starDeskTop.loadComponentFromUrl (URL2, "_blank", 0, Array())
 Document2.storeToURL( ConvertToUrl("C:\Users\Login\Desktop\DocumentTest2.odt"), Array() )
End sub
On peut créer d'autres types de fichiers de la même façon, en remplaçant "swriter" par "scalc, sdraw", ou "simpress".
Si on a pas besoin de manipuler le nouveau document en lui donnant un nom, voici la méthode générale :
Sub OuvrirAutreApplication
 RetVal = Shell("C:\Program Files (x86)\Notepad++\notepad++.exe", 1)
End Sub
Imprimer.
Les paramètres d'impression sont stockés dans un tableau de taille 3, nommé "Parametre1" dans l'exemple, appliqué au "Document1" déjà ouvert ci-dessus :
 dim Parametre1(2) as new com.sun.star.beans.PropertyValue
 Parametre1(0).Name = "Copies"
 Parametre1(0).Value = 1
 Parametre1(1).Name = "RangeText"
 Parametre1(1).Value = "1"
 Parametre1(2).Name = "Collate"
 Parametre1(2).Value = true
 Document1.print(Parametres1())
Lire un document.
Lire un document Writer.
Tout le document courant :
Sub lectureODT
 oDoc1 = ThisComponent
 oContr1 = oDoc1.CurrentController
 oVC1 = oContr1.ViewCursor
 oVC1.gotoStart(false)
 oVC1.gotoEnd(true) 
 msgbox oVC1.string
End Sub
Affichage de la ligne courante :
Sub lectureLigne ()
 oVC = thisComponent.getCurrentController.getViewCursor
 oCursor = oVC.getText.createTextCursorByRange(oVC)
 oCursor.gotoStartOfSentence(false)
 oCursor.gotoEndOfSentence(true)
 msgbox oCursor.getString
End sub
Recherche de la première phrase avec regex :
Sub RecherchePremier
 Dim Plage As Object
 Dim Phrase As String
 Dim oCSD As Object 
 oCSD = ThisComponent.createSearchDescriptor
 Phrase = "." & ".*" & "."
 oCSD.SearchString = Phrase
 oCSD.SearchRegularExpression = True
 Plage = ThisComponent.FindFirst(oCSD)
 If IsNull(Plage) Then
 Msgbox "Aucune phrase trouvée."
 Else
 Msgbox Plage.String
 End If
End sub
Affichage de toutes les phrases d'un document :
Sub RechercheTout
 Dim Plage As Object
 Dim Phrase As String
 Dim oCSD As Object 
 oCSD = ThisComponent.createSearchDescriptor
 Phrase = "." & ".*" & "." 
 oCSD.SearchString = Phrase
 oCSD.SearchRegularExpression = True 
 Phrases = ThisComponent.FindAll(oCSD)
 For i = 0 To Phrases.Count - 1
 If IsNull(Phrases(i)) Then
 Msgbox "Aucune phrase trouvée"
 Else
 msgbox Phrases(i).String
 End If
 Next
End Sub
Les deux fonctions ci-dessous permettent de compter les nombres de consonnes et voyelles du texte sélectionné dans le document courant :
Sub CompteurConsonneVoyelle
 oDoc = ThisComponent
 oText = oDoc.getText()
 oSelection = oDoc.getCurrentSelection()
 If oSelection.Count = 1 Then
 oRange = oSelection.getByIndex(0)
 msgbox ConsonneVoyelle(oRange.getString())
 End If
End Sub
Public Function ConsonneVoyelle(champ As String) As string
 For p = 1 To Len(champ) + 1
 l = Mid(champ, p, 1)
 If Mid(champ, p, 1) = "(" Then
 Do Until (Mid(champ, p, 1) = ")")
 p = p + 1
 Loop
 End If 
 If l = "a" Or l = "A" Or l = "á" Or l = "à" Or l = "ä" Or l = "ã" Or l = "å" Or l = "æ" Or l = "e" Or l = "E" Or l = "é" Or l = "è" _
 Or l = "ë" Or l = "ê" Or l = "i" Or l = "I" Or l = "í" Or l = "o" Or l = "O" Or l = "ò" Or l = "ó" Or l = "õ" Or l = "ô" Or l = "ö" _
 Or l = "œ" Or l = "u" Or l = "U" Or l = "ü" Or l = "û" Or l = "ú" Or l = "ù" Or l = "y" Or l = "Y" Then voyelle = voyelle + 1
 if l = "b" Or l = "B" Or l = "c" Or l = "C" Or l = "ç" Or l = "d" Or l = "D" Or l = "f" Or l = "F" Or l = "g" Or l = "G" Or l = "h" _
 Or l = "H" Or l = "k" Or l = "K" Or l = "l" Or l = "L" Or l = "m" Or l = "M" Or l = "n" Or l = "N" Or l = "p" Or l = "P" Or l = "q" _
 Or l = "Q" Or l = "r" Or l = "R" Or l = "s" Or l = "S" Or l = "t" Or l = "T" Or l = "v" Or l = "V" Or l = "w" Or l = "W" Or l = "x" _
 Or l = "X" Or l = "z" Or l = "Z" Then consonne = consonne + 1
 Next p
 ConsonneVoyelle = ("Voyelles : " & voyelle & ". Consonnes : " & consonne)
End Function
Lire un document texte.
Sub lectureTXT()
 ThisDoc=ThisComponent
 ThisText=ThisDoc.Text
 TheCursor=ThisText.createTextCursor
 FichierTxt="C:\Users\Login\Desktop\FichierALire.txt"
 f1 = FreeFile()
 Open FichierTxt for Input as #f1
 Do while NOT EOF(f1)
 Line Input #f1, s
 msgbox (s)
 Loop
 Close #f1
End Sub
Modifier un document.
On démarre à l'endroit du curseur :
Sub insertion
 oVC = thisComponent.getCurrentController.getViewCursor
 oText = oVC.text
 oText.insertString(oVC, "Texte inséré :", False)
 oText.insertControlCharacter(oVC, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
 oText.insertString(oVC, "Nouveau paragraphe avec ", False)
 oVC.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.BOLD)
 oText.insertString(oVC, "gras", false)
 oVC.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.NORMAL)
 oText.insertString(oVC, " dedans.", false)
End sub
Pour commencer à l'emplacement d'une chaine connue :
Sub RechercheEtRemplace ()
 Document1 = ThisComponent
 FandR = Document1.createReplaceDescriptor
 FandR.SearchString = "gras"
 FandR.ReplaceString = "bold"
 Found = Document1.findFirst(FandR)
 Found.setString(FandR.ReplaceString)
End sub
Supprimer un fichier.
Sub suppression
 kill("C:\Users\Login\Desktop\DocumentTest.odt")
End sub

Photographie/Image numérique/Résolution, affichage et impression