| 
	
		| 
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| cj3000 •->
 
  
 
 Anmeldedatum: 07.01.2009
 Beiträge: 2
 
 
 | 
			
				|  Verfasst am: 08.01.2009 - 10:00    Titel: Kontoauszüge csv in iBank |   |  
				| 
 |  
				| Hallo Liebe AS Skripter. 
 Folgendes Problem vielleicht kann mir jemand weiterhelfen. Die Suche blieb derweil erfolglos. Und in Perl blicke ich so gar nicht durch.
 Ich möchte mit iBank Kontoauszüge meiner Bank importieren. Das Blöde ist nur das meinen Bank diese in einem für iBank unbrauchbaren Format bereitstellt. Und zwar wird für Abgänge und Einzahlungen jeweils eine eigene Spalte verwendet. In iBank gibt es aber nur einen Posten oder Spalte für "amount" bzw. Betrag. In anderen csv Dateien von anderen Banken wird dies auch so gehandhabt nur bei meiner nicht (Deutsche Bank übrigens).
 
 so schaut das csv aus:
 Buchungstag;Wert;Verwendungszweck;Soll;Haben;Waehrung
 30.12.08;30.12.08;"NIKOLAUS";;281,72;EUR
 31.12.08;31.12.08;"Kontoabschluss 4. Quartal 08";-5,95;;EUR
 05.01.09;05.01.09;" NIKOLAUS";;600,00;EUR
 05.01.09;05.01.09;" ZAHLUNGSBELEG R 1&1 INTERNET AG";-29,99;;EUR
 
 ihr seht das es die "Spalten" Soll und Haben gibt. Ich suche nun nach einer Lösung die mir den Soll Betrag sofern er nicht 0 ist in den Haben Betrag überschreibt. Also:
 
 Buchungstag;Wert;Verwendungszweck;Soll;Haben;Waehrung
 30.12.08;30.12.08;"NIKOLAUS";;281,72;EUR
 31.12.08;31.12.08;"Kontoabschluss 4. Quartal 08";;-5,95;EUR
 05.01.09;05.01.09;" NIKOLAUS";;600,00;EUR
 05.01.09;05.01.09;" ZAHLUNGSBELEG R 1&1 INTERNET AG";;-29,99;EUR
 
 Dann könnte ich ganz einfach den Haben Betrag als "amount" auslesen und alles wäre gut.
 
 Kann mir jemand helfen?
 Vielen Dank
 
 Christoph
 |  |  
		| Nach oben |  |  
		|  |  
		| ShooTerKo •--->
 
  
  
 Anmeldedatum: 21.03.2006
 Beiträge: 221
 Wohnort: Hamburg
 
 | 
			
				|  Verfasst am: 08.01.2009 - 23:27    Titel: |   |  
				| 
 |  
				| Moin, witzige Aufgabe als reines Applescript   
 Hier mal meine reine Applescript-Lösung:
  	  | Code: |  	  | -- File öffnen set openedFile to open for access POSIX file "/Users/DEINUSERNAME/Desktop/Input.csv"
 
 -- Alle Lines einlesen
 set fileContentLines to paragraphs of (read openedFile)
 
 -- File schließen
 close access openedFile
 
 -- Neues File erzeugen oder öffnen
 set newFile to open for access POSIX file "/Users/DEINUSERNAME/Desktop/Output.csv" with write permission
 -- Inhalt löschen
 set eof newFile to 0
 
 -- alle text items durchgehen
 repeat with theLine in fileContentLines
 try
 -- Um evtl. Semikolons aus der Betreffzeile filtern
 -- text item Trennung auf " setzen
 set AppleScript's text item delimiters to "\""
 
 set firstPart to text items 1 thru 2 of theLine
 -- secondPart ist der Bereich hinter dem letzten "
 set secondPart to the third text item of theLine
 
 -- text item Trennung auf ";" setzen
 set AppleScript's text item delimiters to ";"
 
 -- einzelne text items als neue Liste holen (wichtig, um die einzelnen items setzen zu können)
 set newSecondPart to text items of secondPart
 
 -- wenn das 2. text item nicht leer ist, das 3. text item jedoch leer ist
 if the second text item of secondPart is not "" and the third text item of secondPart is "" then
 -- schiebe das 2. text item auf den 3. Platz
 set the third item of newSecondPart to the second text item of secondPart
 -- lösche das 2. item aus der Liste
 set the second item of newSecondPart to ""
 end if
 
 -- die Liste newSecondPart als String (verwendet  ; als Trennnung)
 set secondPart to (newSecondPart as string) as string
 
 set AppleScript's text item delimiters to "\""
 
 -- firstPart und secondPart als String (verwendet wieder " als Trennnung)
 write (firstPart & secondPart as string) & return to newFile starting at (get eof of newFile) + 1
 
 -- text item Trennung auf "" (Standard) setzen
 set AppleScript's text item delimiters to ""
 on error
 -- text item Trennung auf "" (Standard) setzen
 set AppleScript's text item delimiters to ""
 -- schreibe auf jeden Fall die Zeile (vermutlich die erste mit den Spaltennamen)
 write theLine & return to newFile starting at (get eof of newFile) + 1
 end try
 end repeat
 
 -- text item Trennung auf "" (Standard) setzen
 set AppleScript's text item delimiters to ""
 
 -- File schließen
 close access newFile
 | 
 
 Sollten Fragen auftreten, einfach melden!
 
 CU
 ShooTerKo
 _________________
 "It is a mistake to think you can solve any major problems just with potatoes." - Douglas Adams
 |  |  
		| Nach oben |  |  
		|  |  
		| iScript •---->
 
  
  
 Anmeldedatum: 29.03.2001
 Beiträge: 1116
 
 
 | 
			
				|  Verfasst am: 09.01.2009 - 01:23    Titel: |   |  
				| 
 |  
				| das ist ja richtig aufwändig   da es ja nur soll oder haben geben kann, könnte man die spalten doch auch einfach zusammenlegen, oder?:
 
 set input to ¬
 "Buchungstag;Wert;Verwendungszweck;Soll;Haben;Waehrung
 30.12.08;30.12.08;\"NIKOLAUS\";;281,72;EUR
 31.12.08;31.12.08;\"Kontoabschluss 4. Quartal 08\";-5,95;;EUR
 05.01.09;05.01.09;\" NIKOLAUS\";;600,00;EUR
 05.01.09;05.01.09;\" ZAHLUNGSBELEG R 1&1 INTERNET AG\";-29,99;;EUR "
 
 set output to ""
 set allParagraphs to paragraphs of input
 repeat with oneParagraph in allParagraphs
 set AppleScript's text item delimiters to ";"
 set temp to oneParagraph's text items
 tell temp to set zeile_out to {item 1, item 2, item 3, item 4 & item 5 as text, item 6}
 set output to (output & zeile_out as text) & return
 set AppleScript's text item delimiters to ""
 end repeat
 
 -- ERGEGNIS:
 "Buchungstag;Wert;Verwendungszweck;SollHaben;Waehrung
 30.12.08;30.12.08;\"NIKOLAUS\";281,72;EUR
 31.12.08;31.12.08;\"Kontoabschluss 4. Quartal 08\";-5,95;EUR
 05.01.09;05.01.09;\" NIKOLAUS\";600,00;EUR
 05.01.09;05.01.09;\" ZAHLUNGSBELEG R 1&1 INTERNET AG\";-29,99;EUR
 "
 |  |  
		| Nach oben |  |  
		|  |  
		| ShooTerKo •--->
 
  
  
 Anmeldedatum: 21.03.2006
 Beiträge: 221
 Wohnort: Hamburg
 
 | 
			
				|  Verfasst am: 09.01.2009 - 09:37    Titel: |   |  
				| 
 |  
				| Ja, das stimmt natürlich   Ich habe vorher noch die Trennung mit " gemacht, um zu verhindern, dass ein Semikolon im Betreff das Ganze zum Kippen bringt. Allerdings sollte man dann noch sicherstellen, dass auch kein weiteres Anführungszeichen im Betreff erscheint, also praktisch die Aufsplittung auf
  	  | Code: |  	  | set firstPart to text items 1 thru -2 of theLine -- secondPart ist der Bereich hinter dem letzten "
 set secondPart to the last text item of theLine
 
 | 
 setzen. Sonst bin ich voll deiner Meinung
   
 CU
 ShooTerKo
 _________________
 "It is a mistake to think you can solve any major problems just with potatoes." - Douglas Adams
 |  |  
		| Nach oben |  |  
		|  |  
		| cj3000 •->
 
  
 
 Anmeldedatum: 07.01.2009
 Beiträge: 2
 
 
 | 
			
				|  Verfasst am: 09.01.2009 - 22:10    Titel: funktioniert tadellos |   |  
				| 
 |  
				| Vielen dank ihr Beiden. 
 funktioniert einwandfrei. Ich habe jetzt das erste Script genommen (reicht völlig) und noch mit einem "on open" befehl ergänzt. So das ich wenn ich eine neuen Kontoauszug von der Bank bekomme, diesen einfach auf das Droplet ziehe.
 Weiß zwar nicht genau ob das so richtig ist aber vorerst funktionierts.
 Danke noch mal für den Code.
 
 Christoph
 
 
 
 Hier der Code:
 -- File öffnen
 
 on open openedFile
 
 -- Alle Lines einlesen
 set fileContentLines to paragraphs of (read openedFile)
 
 -- File schließen
 --close access openedFile--
 
 -- Neues File erzeugen oder öffnen
 set newFile to open for access POSIX file "/Users/USER/Desktop/Output.csv" with write permission
 -- Inhalt löschen
 set eof newFile to 0
 
 -- alle text items durchgehen
 repeat with theLine in fileContentLines
 try
 -- Um evtl. Semikolons aus der Betreffzeile filtern
 -- text item Trennung auf " setzen
 set AppleScript's text item delimiters to "\""
 
 set firstPart to text items 1 thru 2 of theLine
 -- secondPart ist der Bereich hinter dem letzten "
 set secondPart to the third text item of theLine
 
 -- text item Trennung auf ";" setzen
 set AppleScript's text item delimiters to ";"
 
 -- einzelne text items als neue Liste holen (wichtig, um die einzelnen items setzen zu können)
 set newSecondPart to text items of secondPart
 
 -- wenn das 2. text item nicht leer ist, das 3. text item jedoch leer ist
 if the second text item of secondPart is not "" and the third text item of secondPart is "" then
 -- schiebe das 2. text item auf den 3. Platz
 set the third item of newSecondPart to the second text item of secondPart
 -- lösche das 2. item aus der Liste
 set the second item of newSecondPart to ""
 end if
 
 -- die Liste newSecondPart als String (verwendet  ; als Trennnung)
 set secondPart to (newSecondPart as string) as string
 
 set AppleScript's text item delimiters to "\""
 
 -- firstPart und secondPart als String (verwendet wieder " als Trennnung)
 write (firstPart & secondPart as string) & return to newFile starting at (get eof of newFile) + 1
 
 -- text item Trennung auf "" (Standard) setzen
 set AppleScript's text item delimiters to ""
 on error
 -- text item Trennung auf "" (Standard) setzen
 set AppleScript's text item delimiters to ""
 -- schreibe auf jeden Fall die Zeile (vermutlich die erste mit den Spaltennamen)
 write theLine & return to newFile starting at (get eof of newFile) + 1
 end try
 end repeat
 
 -- text item Trennung auf "" (Standard) setzen
 set AppleScript's text item delimiters to ""
 
 -- File schließen
 close access newFile
 end open
 |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | 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
 |  | 
 |