Verfasst: 24.07.2008 09:19
Schön und gut. Dennoch sollte doch die Sprache verbessert werden, auch wenn man sich selber Macros basteln kann. Meiner Meinung nach wäre es eine Verbesserung. 

Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
Procedure Hauptprogramm()
Tabelle.s="C:\Tabelle.xls"
ExcelApp=OpenExcelFileTabelle(Tabelle.s)
For i=2 To 1500 ; in Excelseite mit 2. Zeile beginnen mit auslesen
If ExcelApp
ExcelVisible(ExcelApp,2) ;wenn Excel sichtbar sein soll: "1" wenn nicht dann "2"
AskToUpdateLinks(ExcelApp,0) ; keine Abfrage zu UpdateLinks
DisplayAlertsOnOff(ExcelApp,0) ; wenn "0" dann wird Speicherabfrage unterdrückt - wenn "1" dann nicht
Arbeitsblatt.s="Allgemeintable"
ChangeToWorksheet(ExcelApp,Arbeitsblatt.s)
allgemeintabelleexcels.s=ReadCellS1(ExcelApp, i, 1);Spalte,Zeile
co2maxburnexcelkommas.s=ReadCellS1(ExcelApp, i, 4)
co2minburnexcelkommas.s=ReadCellS1(ExcelApp, i, 5)
co2maxburnexcels.s=ReplaceString(co2maxburnexcelkommas.s, ",", ".")
co2minburnexcels.s=ReplaceString(co2minburnexcelkommas.s, ",", ".")
allgemeintabelletrims.s=Trim (allgemeintabelleexcels.s)
co2maxburntrims.s=Trim (co2maxburnexcels.s)
co2minburntrims.s=Trim (co2minburnexcels.s)
allgemeintabelles.s= LSet(allgemeintabelletrims.s, 10)
co2maxburns.s= LSet(co2maxburntrims.s, 5,"0")
co2minburns.s= LSet(co2minburntrims.s, 5,"0")
ExcelVisible(ExcelApp,2) ;wenn Excel sichtbar sein soll: "1" wenn nicht dann "2"
Else
MessageRequester("Uyarı", "Excel acamıyor")
EndIf
zeilel.l=0
If OpenFile(1,"C:\ALLGEM.TAB")
While Eof(1) = 0 ; sich wiederholende Schleife bis das Ende der Allgemeintabelle ("end of file") erreicht ist
zeilensatzs.s=ReadString(1)
zeilel.l=zeilel.l+1 ;gibt die Zeile an in der der Suchbegriff steht
allgemeintabs.s=Left(zeilensatzs.s,10) ;beim Suchmodus wird vorausgesetzt, dass
If allgemeintabs.s=allgemeintabelles.s
zeiles.s=Str(zeilel.l)
FileSeek(1,(zeilel.l-1)*229+143) ;229 = Zeilenlänge von der Textdatei + 2
WriteString(1, co2maxburns.s) ;schreibt den String ab einer bestimmten Position in die Zeile
FileSeek(1,(zeilel.l-1)*229+161) ;zeile-1 ==> damit der Zeiger am Anfang von der Suchzeile steht
WriteString(1, co2minburns.s)
jahrs.s=FormatDate("%yyyy",Date())
monats.s=FormatDate("%mm",Date())
tags.s=FormatDate("%dd",Date())
stundens.s=FormatDate("%hh",Date())
minutens.s=FormatDate("%ii",Date())
sekundens.s=FormatDate("%ss",Date())
textgesamtallgemeintabs.s = allgemeintabelles.s+" "+tags.s+"."+monats.s+"."+jahrs.s+" "+stundens.s+":"+minutens.s+":"+sekundens.s+" "+co2maxburns.s+" "+co2minburns.s
If OpenFile(2,"C:\Allgemein.log")
laengel.l= Lof(2) ; ermitteln der Dateilaenge
FileSeek(2,laengel.l) ; setzt den Zeiger ans Dateiende
WriteStringN(2,textgesamtallgemeintabs.s) ; schreibt den Gesamttext an das Ende von der Datei
CloseFile(2) ; schließt die Datei
EndIf
EndIf
Wend
Else
MessageRequester("Uyarı","Allgemein tablosu acamadı!")
EndIf
CloseFile(1)
Next i
CloseWorkbook(ExcelApp); schliesst Excelseite um andere Seiten zu bearbeiten
ExcelVisible(ExcelApp,2) ;wenn Excel sichtbar sein soll: "1" wenn nicht dann "2"
CloseExcelAll(ExcelApp); um Excel zu schliessen
EndProcedure
wo hast'n das her?HemSA hat geschrieben:aber eigendlich verwende ich nur noch PB 4.02
Code: Alles auswählen
Procedure Hauptprogramm()
If OpenFile(1,"C:\ALLGEM.TAB"); Da das abhängig von der Exceltabelle ist, würde ich diese File hier ausserhalb der Schleife öffnen
Tabelle.s="C:\Tabelle.xls"
ExcelApp=OpenExcelFileTabelle(Tabelle.s)
For i=2 To 1500 ; in Excelseite mit 2. Zeile beginnen mit auslesen
If ExcelApp
ExcelVisible(ExcelApp,2) ;wenn Excel sichtbar sein soll: "1" wenn nicht dann "2"
AskToUpdateLinks(ExcelApp,0) ; keine Abfrage zu UpdateLinks
DisplayAlertsOnOff(ExcelApp,0) ; wenn "0" dann wird Speicherabfrage unterdrückt - wenn "1" dann nicht
Arbeitsblatt.s="Allgemeintable"
ChangeToWorksheet(ExcelApp,Arbeitsblatt.s)
allgemeintabelleexcels.s=ReadCellS1(ExcelApp, i, 1);Spalte,Zeile
co2maxburnexcelkommas.s=ReadCellS1(ExcelApp, i, 4)
co2minburnexcelkommas.s=ReadCellS1(ExcelApp, i, 5)
co2maxburnexcels.s=ReplaceString(co2maxburnexcelkommas.s, ",", ".")
co2minburnexcels.s=ReplaceString(co2minburnexcelkommas.s, ",", ".")
allgemeintabelletrims.s=Trim (allgemeintabelleexcels.s)
co2maxburntrims.s=Trim (co2maxburnexcels.s)
co2minburntrims.s=Trim (co2minburnexcels.s)
allgemeintabelles.s= LSet(allgemeintabelletrims.s, 10)
co2maxburns.s= LSet(co2maxburntrims.s, 5,"0")
co2minburns.s= LSet(co2minburntrims.s, 5,"0")
ExcelVisible(ExcelApp,2) ;wenn Excel sichtbar sein soll: "1" wenn nicht dann "2"
Else
MessageRequester("Uyari", "Excel acamiyor")
EndIf
zeilel.l=0
;If OpenFile(1,"C:\ALLGEM.TAB")
While Eof(1) = 0 ; sich wiederholende Schleife bis das Ende der Allgemeintabelle ("end of file") erreicht ist
zeilensatzs.s=ReadString(1)
zeilel.l=zeilel.l+1 ;gibt die Zeile an in der der Suchbegriff steht
allgemeintabs.s=Left(zeilensatzs.s,10) ;beim Suchmodus wird vorausgesetzt, dass
If allgemeintabs.s=allgemeintabelles.s
zeiles.s=Str(zeilel.l)
FileSeek(1,(zeilel.l-1)*229+143) ;229 = Zeilenlänge von der Textdatei + 2
WriteString(1, co2maxburns.s) ;schreibt den String ab einer bestimmten Position in die Zeile
FileSeek(1,(zeilel.l-1)*229+161) ;zeile-1 ==> damit der Zeiger am Anfang von der Suchzeile steht
WriteString(1, co2minburns.s)
jahrs.s=FormatDate("%yyyy",Date())
monats.s=FormatDate("%mm",Date())
tags.s=FormatDate("%dd",Date())
stundens.s=FormatDate("%hh",Date())
minutens.s=FormatDate("%ii",Date())
sekundens.s=FormatDate("%ss",Date())
textgesamtallgemeintabs.s = allgemeintabelles.s+" "+tags.s+"."+monats.s+"."+jahrs.s+" "+stundens.s+":"+minutens.s+":"+sekundens.s+" "+co2maxburns.s+" "+co2minburns.s
If OpenFile(2,"C:\Allgemein.log")
laengel.l= Lof(2) ; ermitteln der Dateilaenge
FileSeek(2,laengel.l) ; setzt den Zeiger ans Dateiende
WriteStringN(2,textgesamtallgemeintabs.s) ; schreibt den Gesamttext an das Ende von der Datei
CloseFile(2) ; schließt die Datei
EndIf
EndIf
Wend
Else
MessageRequester("Uyari","Allgemein tablosu acamadi!")
EndIf
FileSeek(1,1) ; kann auch Null sein. Habs nicht probieren können
;CloseFile(1)
Next i
CloseWorkbook(ExcelApp); schliesst Excelseite um andere Seiten zu bearbeiten
ExcelVisible(ExcelApp,2) ;wenn Excel sichtbar sein soll: "1" wenn nicht dann "2"
CloseExcelAll(ExcelApp); um Excel zu schliessen
CloseFile(1); Schließe Datei bis Excel komplett fertig ist
EndProcedure
Code: Alles auswählen
CreateFile(0,"Text.txt")
For i = 1 To 10
WriteStringN(0,Str(i)+": Dieses ist ein Test")
Next i
CloseFile(0)
If ReadFile(0, "Text.txt") ; wenn die Datei geöffnet werden konnte, setzen wir fort...
For i=1 To 2; hier könnte 1500 stehen. Dann würden es 15000 Sätze.
While Eof(0) = 0 ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
Debug Eof(0)
Debug ReadString(0) ; Zeile für Zeile im Debugger-Fenster anzeigen
Wend
FileSeek(0,1)
Next i
CloseFile(0) ; schließen der zuvor geöffneten Datei
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
Von Pure Basic selbstBeitragVerfasst am: 24 Jul 2008 23:43:32 Titel:
HemSA hat Folgendes geschrieben:
aber eigendlich verwende ich nur noch PB 4.02
wo hast'n das her?
Ich wollte eigendlich das "Hilfe => Über => Bild" hier anzeigen. Wusste aber nicht wie das funktioniert.PureBasic v4.02 (Windows - x86)
Feel the ..Pure.. Power
Team Members :
Frederic 'AlphaSND' Laboureur
Benny 'Berikco' Sels
Andre Beer
Timo 'Fr34k' Harter
Former Team Members :
Richard Andersson
Danilo Krahn
PureBasic, all the provided tools and components
are copyrighted (c) 2006 by Fantaisie Software
http://www.purebasic.com
Special thanks to all PureBasic users and beta-testers !