Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Alle Texte eines Ordner in BBedit einfügen

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kamp
•->
•->


Anmeldedatum: 14.10.2004
Beiträge: 6

BeitragVerfasst am: 14.10.2004 - 16:55    Titel: Alle Texte eines Ordner in BBedit einfügen Antworten mit Zitat

Hallo Leute,

ich habe folgendes Problem:

Ich möchte alle Texte (ca 100 Stück) eines bestimmten Ordners in EINEN neuen Text (BBedit) einfügen.

Wie mache ich das auf dem schnellsten Wege?

Vielen Dank schom mal für eine Antwort!!!!

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
herkules
•-->
•-->


Anmeldedatum: 05.01.2004
Beiträge: 23
Wohnort: wädenswil - schweiz

BeitragVerfasst am: 16.11.2004 - 11:51    Titel: Antworten mit Zitat

hi!
hab das was kleines für dich... ich vielleicht ein bisschen unübersichtlich. am besten einfach in den scriptdebugger ziehen und mal kompilieren lassen. dann absichern als script und den ordnern mit den dateien draufziehen oder doppelklicken. das neue textfile wird auf dem desktop erstellt. dieses kannst du ja dann im bbedit öffnen.
kleiner tipp auf den weg: der begriff "!=" mit "is not" oder durchgestrichenem gleichheitszeichen (alt + 6) ersetzen.
achtung, jetzt fängts an Smile

-----------------------
-- V A R I A B E L N --
-----------------------

-- Ordner, Volumen
--****************
global OutputOrdner
global Hd
global DesktopFolder

-- Error
--******
global ErrNr
global ErrMsg
global RoutineName
global HauptRoutine

-- Flag
--*****
global OK
global Bagatelle
global LogFile
global Abbrechen

-- Hilfsvariabeln
--***************
global cr
global _
global dp
global tabl

-- Zaehler
--********
global OkZaehler
global NokZaehler

-- XTensions
--**********
global txt
global qxd
global eps
global jpg

-- Zeitrechung
--************
global ZeitStart

-- Textinhalt
global TextInhalt




----------------
-- O N R U N --
----------------
on run

-- Initialisieren
|Initialisieren|()

-- Input-Folder angeben
if not Abbrechen then
set theFileList to (choose folder with prompt "Bitte Input-Ordner wählen.") as list
end if

-- Verarbeitung
if not Abbrechen then
repeat with theFile in theFileList
|File_or_Folder|(theFile)
end repeat
end if

-- Meldung ausgeben
|Beenden|()

end run



-------------------
-- O N O P E N --
-------------------
on open theFileList

-- Initialisieren
|Initialisieren|()

-- Verarbeitung
if not Abbrechen then
repeat with theFile in theFileList
|File_or_Folder|(theFile)
end repeat
end if

-- Meldung ausgeben
|Beenden|()

end open




-------------------------------
-- H A U P T R O U T I N E N --
-------------------------------

-- Initialisieren
--***************
on |Initialisieren|()

-- Hauptroutine abfuellen
set HauptRoutine to "Initialisieren"

-- Routine-Namen abfuellen
set RoutineName to ""

-- Flags
set OK to true
set Bagatelle to false
set LogFile to false
set Grusszeile to false
set Abbrechen to false

-- Error- und Log-Variabeln
set ErrNr to 0
set ErrMsg to ""

-- Ordner, Volumen
set Hd to ((first item of (list disks)) & ":") as string
set DesktopFolder to (path to desktop) as string

-- Hilfsvariabeln
set cr to return
set _ to "_"
set dp to ":"
set tabl to " "

-- Zaehler
set OkZaehler to 0
set NokZaehler to 0

-- XTensions
set txt to ".txt"
set qxd to ".qxd"
set eps to ".eps"
set jpg to ".jpg"

-- Textinhalt leeren
set TextInhalt to ""

-- Zeitrechnung beginnen
set RoutineName to "ZeitRechnung"
set ZeitStart to |ZeitRechnung|(false, "")

-- Wenn Error, dann ausgeben
if ErrNr != 0 then
|Error|(ErrNr, ErrMsg)
end if

end |Initialisieren|




-- Datei oder Ordner?
--*******************
on |File_or_Folder|(Input)

-- Info rausholen
set theInfo to info for Input

if folder of theInfo then
tell application "Finder"
set FolderList to every item of Input
end tell
repeat with theFolder in FolderList
set theFolder to theFolder as alias
my |File_or_Folder|(theFolder)
end repeat
else
|Mainline|(Input)
end if

end |File_or_Folder|




-- Mainline
--*********
on |Mainline|(Input)

-- File- oder Folder-Verarbeitung
set TextInhalt to (TextInhalt & |FileAuslesen|(Input) & cr & cr) as string

-- Wenn Error, dann ausgeben
if ErrNr != 0 then
|Error|(ErrNr, ErrMsg)
set NokZaehler to NokZaehler + 1
else
set OkZaehler to OkZaehler + 1
end if

end |Mainline|




-- Beenden
--********
on |Beenden|()

-- Hauptroutine abfuellen
set HauptRoutine to "Beenden"

-- Routine-Namen abfuellen
set RoutineName to ""

-- Log-File schreiben
if not Abbrechen then
|CreateLogFile|()
end if

-- Meldung ausgeben
if Abbrechen then
-- Benutzerabbruch
|Meldung|("Benutzerabbruch, es wurde kein Log-File erstellt", 0, "Beenden", "", "", 1, "Finder", "Msg", "", 1)
else
if not OK then
-- Problem ist aufgetreten
|Meldung|("Es ist ein Problem aufgetreten, bitte beheben und Vorgang wiederholen (siehe Log-File im Output-Ordner)" & cr & "Auftrag wurde abgebrochen.", 0, "Beenden", "", "", 1, "Finder", "Msg", "", 0)
else if Bagatelle then
-- kleiner Fehler ist aufgetreten, nichts schlimmes
|Meldung|("Es ist ein kleines Problem aufgetreten (siehe Log-File im Output-Ordner)" & cr & "Auftrag wurde verarbeitet.", 0, "Beenden", "", "", 1, "Finder", "Msg", "", 2)
else
-- alles i.O.
|Meldung|("Es sind keine Probleme aufgetreten" & cr & "Auftrag wurde verarbeitet.", 0, "Beenden", "", "", 1, "Finder", "Msg", "", 1)
end if
end if

end |Beenden|




---------------------------
-- S U B R O U T I N E N --
---------------------------

-- Liste aus String erstellen
--***************************
on |ListeErstellen|(Input, Delimiter)

-- Routine-Namen abfuellen
set RoutineName to "ListeErstellen"

-- Output loeschen
set Output to {}

-- Delimiter uebergeben
set AppleScript's text item delimiters to Delimiter

-- Liste mit den einzelnen Werten zurueckgeben
set Output to (text items 1 thru -1 of Input) as list

-- Delimiter auf "" setzen
set AppleScript's text item delimiters to ""

-- Liste zurueckgeben
return Output

end |ListeErstellen|




-- Meldung ausgeben
--*****************
on |Meldung|(Msg, GivUp, Button1, Button2, Button3, ButtonDef, Aktiv, Typ, DefaultAnswer, Icon)

-- Routine-Namen abfuellen
set RoutineName to "Meldung"

-- ist GivUp eine Zahl?
try
set GivUp to GivUp * 1
on error
set GivUp to 0
end try

-- ist ButtonDef eine Zahl?
try
set ButtonDef to ButtonDef * 1
on error
set ButtonDef to 0
end try


-- Meldung ausgeben
if Typ = "Msg" then
activate
if Button2 = "" and Button3 = "" then
display dialog Msg giving up after GivUp buttons {Button1} default button ButtonDef with icon Icon
else if Button2 != "" and Button3 = "" then
display dialog Msg giving up after GivUp buttons {Button1, Button2} default button ButtonDef with icon Icon
else if Button2 != "" and Button3 != "" then
display dialog Msg giving up after GivUp buttons {Button1, Button2, Button3} default button ButtonDef with icon Icon
else if Button2 = "" and Button3 != "" then
display dialog Msg giving up after GivUp buttons {Button1, Button3} default button ButtonDef with icon Icon
end if
set Output to button returned of result
end if

-- Input verlangen
if Typ = "InputMsg" then
activate
set InputString to display dialog Msg giving up after GivUp buttons {Button1} default button Button1 default answer DefaultAnswer
set Output to text returned of InputString
end if

-- File selektionieren
if Typ = "ChooseFile" then
activate
set Output to (choose file with prompt Msg) as string
end if

-- Folder selektionieren
if Typ = "ChooseFolder" then
activate
set Output to (choose folder with prompt Msg) as string
end if


-- Programm nach Bestaetigung aktivieren
if Aktiv != "" then
try
tell application Aktiv
activate
end tell
end try
end if

-- Wert zurueckgeben
return Output

end |Meldung|




-- File auslesen
--**************
on |FileAuslesen|(Input)

-- Routine-Namen abfuellen
set RoutineName to "FileAuslesen"

-- Input konvertieren
set Input to Input as alias

-- File oeffnen
open for access Input

-- Output initialisieren
set Output to ""

-- alles auslesen
repeat with n from 1 to get eof Input
set Zeichen to read Input from n to n
set Output to Output & Zeichen as string
end repeat

-- file schliessen
close access Input

-- Wert zurueckgeben
return Output

end |FileAuslesen|




-- File-Existenz pruefen
--**********************
on |FileExists|(Input, Del)

-- Routine-Namen abfuellen
set RoutineName to "FileExists"

-- Flag setzen
set Output to false

-- Input konvertieren
set Input to Input as string

-- pruefen
tell application "Finder"

-- existent?
if exists file Input then

-- Flag setzen
set Output to true

-- loeschen, wenn gewuenscht
if Del then
delete file Input
end if
end if

end tell

-- Wert zurueckgeben
return Output

end |FileExists|




-- Ordner-Existenz pruefen
--************************
on |FolderExists|(Input, Del)

-- Routine-Namen abfuellen
set RoutineName to "FolderExists"

-- Flag setzen
set Output to false

-- Input konvertieren
set Input to Input as string

-- pruefen
tell application "Finder"

-- existent?
if exists folder Input then

-- Flag setzen
set Output to true

-- loeschen, wenn gewuenscht
if Del then
delete folder Input
end if
end if

end tell

-- Wert zurueckgeben
return Output

end |FolderExists|




-- Namen pruefen
--**************
on |NamePruefen|(Input, Laenge)

-- nach Sonderzeichen pruefen und gegebenenfalls ersetzten
set Input to |SonderZeichen|(Input, {"\\", "/", ":", "*", "?", "\"", "<", ">", "|", "!", "+", "="}, "_")

-- Name stutzen, wenn zu lange
if (length of Input) > Laenge then
set Output to (characters 1 thru Laenge of Input) as text
else
set Output to Input
end if

-- Wert zurueckgeben
return Output

end |NamePruefen|




-- String Nach Sonderzeichen filtern und ersetzen
--***********************************************
on |SonderZeichen|(Input, SonderZeichen, Ersatz)

-- initialisierungen
set Zaehler to 1
set Output to ""

-- Laenge des Strings uebergeben
set Laenge to length of Input

-- String nach Sonderzeichen durchsuchen
repeat while Zaehler <= Laenge

-- Buchstaben zur Pruefung uebergeben
set Zeichen to (item Zaehler of Input)

if SonderZeichen contains Zeichen then
repeat with p from 1 to the (number of items in the SonderZeichen)
if Zeichen = item p of SonderZeichen then
set Output to (Output & Ersatz) as string
exit repeat
end if
end repeat
else
set Output to (Output & Zeichen) as string
end if

-- Zaehler erhoehen
set Zaehler to Zaehler + 1

end repeat

-- Wert zurueckgeben
return Output

end |SonderZeichen|




-- Log-Datei erstellen
--********************
on |CreateLogFile|()

-- Routine-Namen abfuellen
set RoutineName to "CreateLogFile"

-- Dauer errechnen
set RoutineName to "ZeitRechnung"
set Dauer to |ZeitRechnung|(true, ZeitStart)

-- Datum anfordern
set RoutineName to "Datum"
set LogDatumF to |Datum|("YYYY,MM,TT", "")
set LogDatumT to |Datum|("TT,MM,YYYY", ". ")

-- Log-Name/Pfad zusammensetzen mit Laufnummer
set LogDatumF to |NamePruefen|(LogDatumF, 20)
set LogName to ("Texte_" & LogDatumF) as string
set LogPfad to (DesktopFolder & LogName & _ & ((length of (list folder DesktopFolder without invisibles)) + 1) & txt) as string

-- Titel schreiben
set Titel to ("Logdatei vom " & LogDatumT & cr & cr & cr) as string

-- Statistik zusammensetzen
set Statistik to ""
set Statistik to ¬
(cr & cr & ¬
"Statistik" & cr & ¬
"*********" & cr & ¬
"Script-Laufzeit: " & Dauer & cr & ¬
"fehlerfreie Dokumente abgearbeitet : " & OkZaehler & cr & ¬
"fehlerhafte Dokumente abgearbeitet: " & NokZaehler) as string

-- Wenn log bereits besteht, dieses loeschen
if |FileExists|(LogPfad, false) then
|FileExists|(LogPfad, true)
end if

-- File oeffnen
set LogPfad to open for access LogPfad with write permission

-- Titel, Meldung und Statistik schreiben
write Titel as string to LogPfad
write ErrMsg to LogPfad
write Statistik to LogPfad
write (cr & cr & cr) as string to LogPfad
write TextInhalt to LogPfad

-- Log-Datei schliessen
close access LogPfad

end |CreateLogFile|




-- Datum formatieren
--******************
on |Datum|(Input, dlm)

-- Initialisierungen
set Output to ""

-- Datum auslesen
set Datum to current date
set Tag to day of Datum as string
set Monat to month of Datum as string
set Jahr to year of Datum as string

-- Monat als Zahl ausgeben
if Monat = "January" then
set Monat to "1"
else if Monat = "February" then
set Monat to "2"
else if Monat = "March" then
set Monat to "3"
else if Monat = "April" then
set Monat to "4"
else if Monat = "May" then
set Monat to "5"
else if Monat = "June" then
set Monat to "6"
else if Monat = "July" then
set Monat to "7"
else if Monat = "August" then
set Monat to "8"
else if Monat = "September" then
set Monat to "9"
else if Monat = "October" then
set Monat to 10
else if Monat = "November" then
set Monat to 11
else if Monat = "December" then
set Monat to 12
else
set Monat to 0
end if

-- von Input Liste erstellen
set InputListe to |ListeErstellen|(Input, ",")

-- Datum zusammensetzen
repeat with n from 1 to (the number of items in the InputListe)

-- Zeitart uebergeben
set ZeitArt to (item n of InputListe)

-- Zeitspanne?
if ZeitArt = "T" or ZeitArt = "TT" then
set Zeit to Tag as string
else if ZeitArt = "M" or ZeitArt = "MM" then
set Zeit to Monat as string
else if ZeitArt = "YY" or ZeitArt = "YYYY" then
set Zeit to Jahr as string
else
set Zeit to ""
end if

-- Laenge pruefen
if (length of ZeitArt) = 2 and (length of Zeit) = 1 then
set Zeit to ("0" & Zeit) as string
else if (length of ZeitArt) = 2 and (length of Zeit) = 4 then
set Zeit to (characters 3 thru 4 of Zeit) as string
end if

-- Output zusammensetzen
if Output = "" then
set Output to Zeit
else
set Output to Output & dlm & Zeit
end if

end repeat

-- Wert zurueckgeben
return Output

end |Datum|




-- Zeit-Rechnung
--**************
on |ZeitRechnung|(Rechnen, ZeitStart)

-- Dauer errechnen
if Rechnen then

-- Aktuelle Zeit (Ende-Zeit) abfuellen
set ZeitEnde to current date

-- Dauer errechnen
set Dauer to ZeitEnde - ZeitStart

-- Output abfuellen (Minuten oder Sekunden?)
if Dauer > 60 then
set Output to (((round ((((Dauer / 60) / 1 / 1)) * 10)) / 10) & " Minuten") as string

else if Dauer = 60 then
set Output to "eine Minute"

else if Dauer < 60 then
set Output to (Dauer & " Sekunden") as string

else if Dauer = 1 then
set Output to "eine Sekunde"

else
set Output to Dauer

end if

else
-- Start-Zeit setzen
set Output to current date

end if

-- Wert zurueckgeben
return Output

end |ZeitRechnung|




-- Error-Meldung zusammensetzen
--*****************************
on |Msg|(Input)

-- Hauptroutine ergaenzen
set HauptRoutineText to ("Fehler in Hauptroutine: " & HauptRoutine & cr) as string

-- Routine-Name ergaenzen, falls vorhanden
if RoutineName != "" then
set RoutineNameText to ("zuletzt aufgerufene Routine: " & RoutineName & cr) as string
else
set RoutineNameText to ""
end if

-- Meldung zusammensetzen
set Output to (ErrMsg & HauptRoutineText & RoutineNameText & Input & cr & cr) as string

-- Wert zurueckgeben
return Output

end |Msg|




-- Error-Meldung ausgeben
--***********************
on |Error|(InputNr, ErrMsg)

--*******************************************************************************************************
-- Error-Nummer gibt Status an
--*******************************************************************************************************
-- Status 1 => schwerwiegender Fehler, das Skript gibt einen Error aus und bricht ab
-- Status 2 => das Skript gibt einen Hinweis ins Log-File, bricht nach verarbeiteter Hauptroutine ab
-- Status 3 => das Skript laeuft weiter, ein Hinweis wird ins Log-File geschrieben
--*******************************************************************************************************

--*******************************************************************************************************
-- Error-Aufrufe
--*******************************************************************************************************
-- Status 1
(*
try
-- Anweisungen
on error
set ErrNr to 1
set ErrMsg to "Ausserordentlicher Fehler!"
|Error|(ErrNr, ErrMsg)
end try
*)

-- Status 2
(*
try
-- Anweisungen
on error
set ErrNr to 2
set ErrMsg to "Dummer Fehler."
end try
*)

-- Status 3
(*
try
-- Anweisungen
on error
if ErrNr != 2 then
set ErrNr to 3
set ErrMsg to "Eine Bagatelle."
end if
end try
*)


-- Flag setzen
set LogFile to true

-- Error-Nummer abfragen
if InputNr = 1 then
-- schwerwiegender Fehler

-- in Vordergrund holen
activate

-- Meldung ausgeben
error ErrMsg

else
-- Problem oder Hinweis

-- Flag je nach Schwere des Fehlers setzen
if InputNr = 2 then
set OK to false
else if InputNr = 3 and OK then
set Bagatelle to true
end if

-- Error-Nummer zuruecksetzen
set ErrNr to 0

end if

end |Error|
_________________
gruss christos;-)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
kamp
•->
•->


Anmeldedatum: 14.10.2004
Beiträge: 6

BeitragVerfasst am: 29.12.2004 - 12:46    Titel: etwas kleines... Antworten mit Zitat

hi herkules,


entschuldige, dass ich mich jetzt erste melde. hatte noch ein paar andere dinge zu erledigen...

oh man, da weiiss ich ja jetzt auch, warum ich das problem nicht in den griff bekommen habe! vielen dank für dein script. es funktioniert wunderbar. habe es schon ausprobiert. das hätte ich so nie hinbekommen - vielen dank nochmal.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
herkules
•-->
•-->


Anmeldedatum: 05.01.2004
Beiträge: 23
Wohnort: wädenswil - schweiz

BeitragVerfasst am: 29.12.2004 - 19:47    Titel: Antworten mit Zitat

kein problem, gern geschehen Razz
_________________
gruss christos;-)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter